天天看點

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;
    }
};           

正确的代碼,官方答案廣度優先搜尋和寬度優先搜尋

上一篇: 期末總結