题目:
题解:
func canFinish(numCourses int, prerequisites [][]int) bool {var (edges = make([][]int, numCourses)indeg = make([]int, numCourses)result []int)for _, info := range prerequisites {edges[info[1]] = append(edges[info[1]], info[0])indeg[info[0]]++}q := []int{}for i := 0; i < numCourses; i++ {if indeg[i] == 0 {q = append(q, i)}}for len(q) > 0 {u := q[0]q = q[1:]result = append(result, u)for _, v := range edges[u] {indeg[v]--if indeg[v] == 0 {q = append(q, v)}}}return len(result) == numCourses
}