[leetcode] Course Schedule

来源:互联网 发布:淘宝大图大于540 编辑:程序博客网 时间:2024/05/06 16:11

图算法,判断有向图是否存在回路。拓扑排序即可,代码如下:

bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {        vector<int> into(numCourses, 0);        for(int i = 0; i < prerequisites.size(); ++i)            into[prerequisites[i][0]]++;        for(int i = 0; i < numCourses; ++i){            int j = 0;            while(j < numCourses){                if(into[j] == 0)                    break;                ++j;            }            if(j == numCourses)                return false;            into[j] = -1;            for(int p = 0; p < prerequisites.size(); ++p)                if(prerequisites[p][1] == j)                    into[prerequisites[p][0]]--;        }        return true;    }


0 0
原创粉丝点击