Advertisement
Guest User

Untitled

a guest
Jun 27th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. class Solution {
  2. public int[] findOrder(int n, int[][] prerequisites) {
  3.  
  4.  
  5. int[] indegree= new int[n];
  6.  
  7.  
  8. Queue<Integer> q= new LinkedList<>();
  9. for(int[] i:prerequisites){
  10. indegree[i[0]]++;
  11. }
  12.  
  13. int f=0;
  14. int[] res= new int[n];
  15. for(int i=0;i<n;i++){
  16. if(indegree[i]==0){
  17. res[f++]=i;
  18. q.add(i);
  19. }
  20. }
  21.  
  22. while(!q.isEmpty()){
  23. int t= q.poll();
  24. for(int i=0;i<prerequisites.length;i++){
  25. if(t==prerequisites[i][1]){
  26. indegree[prerequisites[i][0]]--;
  27. if(indegree[prerequisites[i][0]]==0){
  28. res[f++]=prerequisites[i][0];
  29. q.add(prerequisites[i][0]);
  30. }
  31. }
  32. }
  33.  
  34. }
  35.  
  36. return (f==n)?res:new int[0];
  37. }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement