Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public int[] findOrder(int n, int[][] prerequisites) {
- int[] indegree= new int[n];
- Queue<Integer> q= new LinkedList<>();
- for(int[] i:prerequisites){
- indegree[i[0]]++;
- }
- int f=0;
- int[] res= new int[n];
- for(int i=0;i<n;i++){
- if(indegree[i]==0){
- res[f++]=i;
- q.add(i);
- }
- }
- while(!q.isEmpty()){
- int t= q.poll();
- for(int i=0;i<prerequisites.length;i++){
- if(t==prerequisites[i][1]){
- indegree[prerequisites[i][0]]--;
- if(indegree[prerequisites[i][0]]==0){
- res[f++]=prerequisites[i][0];
- q.add(prerequisites[i][0]);
- }
- }
- }
- }
- return (f==n)?res:new int[0];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement