美文网首页
Leetcode 207. Course Schedule

Leetcode 207. Course Schedule

作者: 刘宇轩Freeman | 来源:发表于2017-05-14 12:25 被阅读0次
    bool canFinish(int numCourses, vector<pair<int, int>>& prerequisites) {
        vector<vector<int>> matrix(numCourses,vector<int>(numCourses,0));
        vector<int> inDegree(numCourses);
        
        for(int i = 0;i < prerequisites.size();i++){
            int pre =  prerequisites[i].second;
            int ready = prerequisites[i].first;
            if(matrix[pre][ready] == 0){
                inDegree[ready]++;
                matrix[pre][ready] ++;
            }
        }
        
        int count = 0;
        queue<int> queue;
        for(int i = 0;i < inDegree.size();i++){
            if(inDegree[i] == 0){
                queue.push(i);
            }
        }
        
        while(!queue.empty()){
            int course = queue.front();
            queue.pop();
            count ++;
            for(int i = 0;i < numCourses;i++){
                if(matrix[course][i] != 0){
                    if(--inDegree[i] == 0){
                        queue.push(i);
                    }
                }
            }
        }
        return count == numCourses;
        
    }

    相关文章

      网友评论

          本文标题:Leetcode 207. Course Schedule

          本文链接:https://www.haomeiwen.com/subject/fskqxxtx.html