Fetch the repository succeeded.
package LeetCode;
import java.lang.reflect.Array;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Deque;
public class LC_210 {
public static void main(String[] args) {
System.out.println(Arrays.toString(findOrder(4, new int[][]{{1, 0}, {2, 0}, {3, 1}, {3, 2}})));
}
public static int[] findOrder(int numCourses, int[][] prerequisites) {
ArrayList<ArrayList<Integer>> list = new ArrayList<>();
ArrayList<Integer> res = new ArrayList<>();
Deque<Integer> que = new ArrayDeque<>();
int[] indeg = new int[numCourses];
for (int i = 0; i < numCourses; i++) {
list.add(new ArrayList<>());
}
for (int[] rela : prerequisites) {
list.get(rela[1]).add(rela[0]);
indeg[rela[0]]++;
}
for (int i = 0; i < indeg.length; i++) {
if (indeg[i] == 0) que.add(i);
}
while (!que.isEmpty()) {
int u = que.pop();
res.add(u);
for (Integer v : list.get(u)) {
indeg[v]--;
if (indeg[v] == 0) que.add(v);
}
}
if (res.size() == numCourses) return res.stream().mapToInt(Integer::intValue).toArray();
return new int[]{};
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。