LeetCode【207】课程表

题目:

思路:

https://www.jianshu.com/p/25868371ddfc/

代码:

java 复制代码
public boolean canFinish(int numCourses, int[][] prerequisites) {
        // 入度
        int[] indegress = new int[numCourses];

        // 每个点对应的边,出边
        Map<Integer, List<Integer>> adjacency = new HashMap<>();

        Queue<Integer> queue = new LinkedList<>();

        for (int i = 0; i < numCourses; i++) {
            adjacency.put(i, new ArrayList<>());
        }

        for (int[] cp : prerequisites) {
            indegress[cp[0]]++;
            adjacency.get(cp[1]).add(cp[0]);
        }

        for (int i = 0; i < numCourses; i++) {
            if (indegress[i] == 0) {
                queue.offer(i);
            }
        }

        // BFS
        while (!queue.isEmpty()) {
            Integer pre = queue.poll();
            numCourses--;
            for (int cur : adjacency.get(pre)) {
                if (--indegress[cur] == 0) {
                    queue.offer(cur);
                }
            }
        }

        return numCourses == 0;
    }
相关推荐
M--Y16 小时前
Redis集群和典型应用场景
redis·算法·哈希算法·集群
MediaTea16 小时前
AI 术语通俗词典:召回率(分类)
人工智能·算法·机器学习·分类·数据挖掘
ECT-OS-JiuHuaShan16 小时前
哲学的本质,是递归因果
java·开发语言·人工智能·科技·算法·机器学习·数学建模
_深海凉_17 小时前
LeetCode热题100-26. 删除有序数组中的重复项
python·算法·leetcode
A_aspectJ17 小时前
如何抓住Java开发岗的市场红利?从需求端反推学习路径
java·开发语言·职场和发展
睡觉就不困鸭17 小时前
第14天 四数之和
数据结构·算法
云泽80817 小时前
二叉树高阶笔试算法题精讲(一):序列化、层序遍历、LCA 与 BST 转换
数据结构·c++·算法
再卷也是菜17 小时前
算法提高篇(3)线段树(下)
算法
嘻嘻哈哈樱桃17 小时前
牛客经典101题题解集--二叉树
java·数据结构·python·算法·leetcode·职场和发展
6Hzlia17 小时前
【Hot 100 刷题计划】 LeetCode 98. 验证二叉搜索树 | C++ 指针边界法
c++·算法·leetcode