1. 程式人生 > 其它 >210.課程表Ⅱ

210.課程表Ⅱ

技術標籤:leetcode

思路類似207,只需要增加一個數組存放入度=0的課程順序即可

class Solution {
public:
    vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
        vector<int> indeg(numCourses);
        vector<vector<int>> course(numCourses);
        queue<int
> zero; vector<int> sequence; for(int i =0;i<prerequisites.size();i++) { indeg[prerequisites[i][0]]++; course[prerequisites[i][1]].push_back(prerequisites[i][0]); } for(int i = 0;i<numCourses;i++) { if(indeg[
i]==0) zero.push(i); } while(zero.size()!=0) { int pre = zero.front(); zero.pop(); numCourses--; sequence.push_back(pre); for(int i=0;i<course[pre].size();i++) { indeg[course[
pre][i]]--; if(indeg[course[pre][i]]==0) zero.push(course[pre][i]); } } vector<int> no; if(numCourses == 0) return sequence; else return no; } };