Course Schedule

来源:互联网 发布:地图矢量化软件 编辑:程序博客网 时间:2024/05/23 02:01
public class Solution {    public boolean canFinish(int n, int[][] edges) {        if (edges == null) {            throw new IllegalArgumentException("a");        }        int[] courses = new int[n];        for (int i = 0; i < edges.length; i++) {            courses[edges[i][0]]++;        }        Queue<Integer> queue = new LinkedList<>();        for (int i = 0; i < n; i++) {            if (courses[i] == 0) {                queue.offer(i);            }        }        int num = queue.size();        while (!queue.isEmpty()) {            int idx = queue.poll();            for (int i = 0; i < edges.length; i++) {                if (edges[i][1] == idx) {                    courses[edges[i][0]]--;                    if (courses[edges[i][0]] == 0) {                        num++;                        queue.offer(edges[i][0]);                    }                }            }        }        return num == n;    }}

0 0