程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [LeetCode 207] Course Schedule

[LeetCode 207] Course Schedule

編輯:C++入門知識

[LeetCode 207] Course Schedule


 

There are a total of n courses you have to take, labeled from 0 to n - 1.

Some courses may have prerequisites, for example to take course 0 you have to first take course 1, which is expressed as a pair: [0,1]

Given the total number of courses and a list of prerequisite pairs, is it possible for you to finish all courses?

For example:

2, [[1,0]]

There are a total of 2 courses to take. To take course 1 you should have finished course 0. So it is possible.

2, [[1,0],[0,1]]

There are a total of 2 courses to take. To take course 1 you should have finished course 0, and to take course 0 you should also have finished course 1. So it is impossible.

Note:
The input prerequisites is a graph represented by a list of edges, not adjacency matrices. Read more about how a graph is represented.

topological sort, in a directed graph, every time found node without pre-node, then remove all its edges. until iterate all nodes or found cycle.

 

 

public boolean canFinish(int numCourses, int[][] prerequisites) {
        List preCourse = new ArrayList();
        for(int i=0;i());
        }
        for(int i=0;i
 iterator = set.iterator();
            while(iterator.hasNext()){
                prenums[iterator.next()]++;
            }
        }
        for(int i=0;i iterator = set.iterator();
            while(iterator.hasNext()){
                prenums[iterator.next()]--;
            }
        }
        return true;
    }


 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved