这道题跟Graph 那题基本一样,唯一的不同在于,这道题是directed graph.
一个很tricky的地方!由于courses nodes不一定只有一个connected component。所以run一次hasCycle是不够的。要每个点都run一次。
总结一下一开始错的地方: 最大的失误就是把prerequsite 顺序搞反了,没看清楚。start 和end一开始取错了。
后面还有一个问题就是 当我从每一个点都run 一次hasCycle的时候就不行了。即使把boolean array放进for loop,java似乎也只会执行一次。
后来解决的办法是通过在hasCycle里把visited[index] reset回false解决的。
Course Schedule II