虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > C/C++编程 > [LeetCode 207] Course Schedule

[LeetCode 207] Course Schedule
类别:C/C++编程   作者:码皇   来源:coder 进阶的专栏     点击:

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

 

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;
    ii++){
    integer="" new="">());
    }
    for(int i=0;
    ii++){
    i="0;
    i<numCourses;
    i++){
    " int="" integer="" prenums="new" set=""> iterator = set.iterator();
    while(iterator.hasNext()){
    prenums[iterator.next()]++;
    }
    }
    for(int i=0;
    ii++){
    int="" integer="" j="=" return="" set=""> iterator = set.iterator();
    while(iterator.hasNext()){
    prenums[iterator.next()]--;
    }
    }
    return true;
    }
    i++){
    >
    i++){
    >
    i++){
    >


 

 

 

相关热词搜索: [LeetCode 207] Course Schedule