Interview 150
Course Schedule II
- Problem
- LC 210
- File
- interview150_LC210CourseScheduleII.java
- Path
- pkg5leetcode/interview150/interview150_LC210CourseScheduleII.java
- Package
- pkg5leetcode.interview150
- Command
- java pkg5leetcode/interview150/interview150_LC210CourseScheduleII.java
There is no in-browser runner. This is the file from the curriculum, unchanged.
1package pkg5leetcode.interview150;2 3/** LC 210 Course Schedule II */4import java.util.*;5 6public class interview150_LC210CourseScheduleII {7 static int[] findOrder(int n, int[][] prereq) {8 List<List<Integer>> g = new ArrayList<>();9 int[] indeg = new int[n];10 for (int i = 0; i < n; i++) g.add(new ArrayList<>());11 for (int[] e : prereq) { g.get(e[1]).add(e[0]); indeg[e[0]]++; }12 Queue<Integer> q = new ArrayDeque<>();13 for (int i = 0; i < n; i++) if (indeg[i] == 0) q.add(i);14 int[] order = new int[n]; int idx = 0;15 while (!q.isEmpty()) {16 int u = q.poll(); order[idx++] = u;17 for (int v : g.get(u)) if (--indeg[v] == 0) q.add(v);18 }19 return idx == n ? order : new int[0];20 }21 22 public static void main(String[] args) {23 System.out.println(Arrays.toString(findOrder(2, new int[][]{{1,0}})));24 }25}