210. 课程表 II210. 课程表Ⅱ这题跟之前那题一样题目题解class Solution { public int[] findOrder(int numCourses, int[][] prerequisites) { //创建记录先修课程 int[] pres new int[numCourses]; //创建映射表 MapInteger, ListInteger map new HashMap(); //进行初始化映射表 for(int i0;inumCourses;i) { map.put(i, new ArrayListInteger()); } //根据prerequesties更新对应的presmap for(int i0;iprerequisites.length;i) { int course prerequisites[i][0]; int preCourse prerequisites[i][1]; map.get(preCourse).add(course); pres[course]; } ListInteger res new ArrayList(); int r 0; //进行bfs遍历 QueueInteger queue new LinkedList(); for(int i0;inumCourses;i) { //如果没有先修课程 if(pres[i]0) { queue.offer(i); } } while(queue.size()0) { int t queue.poll(); res.add(t); ListInteger list map.get(t); for(int l:list) { pres[l]--; if(pres[l]0) { queue.offer(l); } } } if(res.size()!numCourses) { return new int[0]; } return res.stream().mapToInt(i-i).toArray(); } }