207. 课程表

不想写了,知道是拓扑排序,但是思考了半天不会写,写成下面这个样子

主要是不知道用一个数组记录状态,最近老是想着节省空间,

好像误入歧途了

查看代码
class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        vector<vector<int>>temp(numCourses);
        // unordered_map<int>flag;
        // for(int i=0;i<numCourses;i++){
        //     flag[i] = 0;
        // }
        int num=0;
        int tail = -1;
        set<int>s;
        bool t = false;
        for(int i=0;i<prerequisites.size();i++){
            temp[prerequisites[i][1]].push_back(prerequisites[i][0]);
        }
        for(int i=0;i<temp.size();i++){
            if(temp[i].size()==0){
                tail = i;
            }
        }
        if(tail == -1){
            return false;
        }
        for(int i=0;i<numCourses;i++){
            if(go())
        }
        return true;
    }
};

正确的代码,官方答案广度优先搜索和宽度优先搜索

 

上一篇:kafka集群搭建


下一篇:拓扑排序和floyed算法