首页 > 其他 > 详细

LeetCode-210 课程表Ⅱ

时间:2020-05-11 20:59:55      阅读:39      评论:0      收藏:0      [点我收藏+]

拓扑排序

class Solution {
    public int[] findOrder(int numCourses, int[][] prerequisites) {
            //统计所有节点的入度
            int[] res = new int[numCourses];
            int[] in = new int[numCourses];
            for(int[] cp : prerequisites)
            {
                in[cp[0]]++;
            }
            Queue<Integer> q=  new LinkedList<>();
            for(int i = 0 ; i < numCourses ; i++)
            {
                if(in[i] == 0) q.offer(i);
            }
            int index = 0 ;
            while(!q.isEmpty())
            {
                Integer cur = q.poll();
                numCourses--;
                res[index++] = cur;
                for(int[] cp : prerequisites)
                {
                    if(cp[1] == cur )
                    {
                        in[cp[0]]  -= 1 ;
                        if(in[cp[0]] == 0) q.offer(cp[0]);
                    }
                }
            }

            if(numCourses == 0)return res;
            else return new int[0];
    }
}

 

LeetCode-210 课程表Ⅱ

原文:https://www.cnblogs.com/swqblog/p/12871524.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!