力扣hot100:207. 课程表

这是一道拓扑排序问题,也可以使用DFS判断图中是否存在环。详情请见:官方的BFS算法请忽略,BFS将问题的实际意义给模糊了,不如用普通拓扑排序思想。

数据结构:图的拓扑排序与关键路径

拓扑排序:

cpp 复制代码
class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        vector<int> degree(numCourses,0);
        vector<vector<int>> g(numCourses);
        int top=-1;
        int num=0;
        for(auto i:prerequisites){
            g[i[1]].emplace_back(i[0]);
            degree[i[0]]++;
        }
        for(int i=0;i<numCourses;++i) if(degree[i]==0) {degree[i]=top;top=i;num++;}
        while(top!=-1){
            int pre=top;top=degree[top];
            for(auto i:g[pre]){
                if(--degree[i]==0){
                    degree[i]=top;
                    top=i;
                    ++num;
                }
            }
        }
        return num==numCourses;
    }
};
相关推荐
十铭忘2 小时前
HMM(隐马尔可夫模型)的理解7——Baum–Welch 算法
人工智能·算法
明月_清风3 小时前
十大经典排序算法 Go 实现全解:从入门到面试通关
后端·算法·排序算法
liliangcsdn3 小时前
如何对IC时间序列进行汇总统计分析示例
人工智能·算法·机器学习
土司大王3 小时前
LeetCode hot100——缺失的第一个正数
数据结构·算法·leetcode
Cccp.1233 小时前
【leetcode】(二)认识O(NlogN)的排序
算法·leetcode
明月_清风3 小时前
算法时间复杂度:给小白的一堂"算快慢"课
后端·算法
vivo互联网技术3 小时前
TinySR:面向真实世界图像超分辨率的轻量级扩散模型
人工智能·算法
不会就选b4 小时前
数据结构之栈的算法题(OJ)
linux·数据结构·算法
人工智能培训4 小时前
人工智能性别与地域偏见的成因及消解路径
大数据·人工智能·算法·生活
鹿角片ljp4 小时前
LeetCode 56:合并区间复盘|从排序思维到 List<int[]> 的简洁写法
算法·leetcode·list