zoukankan      html  css  js  c++  java
  • Leetcode 207 课程表(复习拓扑排序)

    题目描述:

      你这个学期必须选修 numCourse 门课程,记为 0 到 numCourse-1 。在选修某些课程之前需要一些先修课程。 例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]

    给定课程总量以及它们的先决条件,请你判断是否可能完成所有课程的学习?

    题解:

      拓扑排序模板题目,简单复习了一下。看了一下之前用的模板,好丑...换个模板

    AC代码:

      

    class Solution {
    public:
        // 复习一下拓扑排序
        bool Topo(int n)
        {
            queue<int> que; // 入度为0的点
            for(int i=0;i<n;i++)
            {
                if(degree[i] == 0) que.push(i);
            }
            int count = 0;
            while(!que.empty())
            {
                int now = que.front();
                que.pop();
                count++;
                int edge_len = edge[now].size();
                for(int i=0;i<edge_len;i++)
                {
                    degree[edge[now][i]]--;
                    if(degree[edge[now][i]] == 0) que.push(edge[now][i]);
                }
            }
           // cout << count <<endl;
            if(count != n) return false;
            return true;
        }
        bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
            int Len = prerequisites.size();
            for(int i=0;i<=numCourses;i++) 
            {
                edge[i].clear();
                degree[i] = 0;
            }
            
            for(int i=0;i<Len;i++)
            {
                int fir = prerequisites[i][0];
                int sec = prerequisites[i][1];
                degree[sec]++;
                edge[fir].push_back(sec);
            }
    
            return Topo(numCourses);
        }
    private:
        vector<int> edge[100010];
        int degree[100010];
    };
  • 相关阅读:
    pcntl_fork 导致 MySQL server has gone away 解决方案
    视频网站 阻止迅雷劫持下载
    推荐大家使用的CSS书写规范、顺序
    console对象
    js Math函数
    致13级师弟师妹关于校招的一些话
    UVA514 铁轨 Rails:题解
    SP1805 HISTOGRA
    洛谷 P4363 [九省联考2018]一双木棋chess 题解
    比赛:大奔的方案solution
  • 原文地址:https://www.cnblogs.com/z1141000271/p/12610885.html
Copyright © 2011-2022 走看看