Leetcode207. 课程表(HOT100)

链接

题解:先统计入度为0的点,如果一个节点入度为0,说明没有课程指向它,那么你就可以学习它了。反之说明还有先修课。

注意:图存在拓扑排序等价于图不存在环。其实可以想出:如果是一个环,那么就没有突破点。

代码:

cpp 复制代码
class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        int n = numCourses;//可以直接改变形参为n,方便代码书写
        vector<vector<int>> g(n);
        vector<int> d(n);
        for(const auto&e:prerequisites){
            int b = e[0],a = e[1];
            g[a].push_back(b);
            d[b]++;
        }
        queue<int> q;
        for(int i = 0;i<n;i++){
            if(d[i]==0){
                q.push(i);
            }
        }
        
        int cnt = 0;
        while(q.size()){
            int a = q.front();
            q.pop();
            cnt++;
            for(const auto&e:g[a]){
                if(--d[e]==0){
                    q.push(e);
                }
            }

        }
        return cnt==n;
    }
};

题解:

相关推荐
AI科技星34 分钟前
统一场论框架下万有引力常数的量子几何涌现与光速关联
数据结构·人工智能·算法·机器学习·重构
仰泳的熊猫36 分钟前
1109 Group Photo
数据结构·c++·算法·pat考试
2401_841495641 小时前
【数据结构】最短路径的求解
数据结构·动态规划·贪心·ipython·最短路径·迪杰斯特拉算法·弗洛伊德算法
tgethe1 小时前
Java 数组(Array)笔记:从语法到 JVM 内核
java·数据结构
客梦2 小时前
数据结构-单链表
数据结构
M__332 小时前
动规入门——斐波那契数列模型
数据结构·c++·学习·算法·leetcode·动态规划
kesifan2 小时前
数据结构线性表
数据结构·算法
点云SLAM3 小时前
boost中boost::adjacency_list 与 boost::adjacency_list_traits
数据结构·图论·最大流·boos中图模块·泛型算法·traits 解耦设计·adjacency_list
梦帮科技3 小时前
第二十二篇:AI驱动的工作流优化:性能瓶颈自动检测
数据结构·数据库·人工智能·python·开源·极限编程
夏乌_Wx4 小时前
练题100天——DAY33:种花问题+三个数的最大乘积+子数组最大平均数Ⅰ
数据结构