数据结构 力扣 练习

拓扑:

课程表,课程表II

课程表
课程表II

cpp 复制代码
class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        int n=numCourses,cnt=0;
        vector<int> du(n);
        vector<vector<int>> e(n);
        queue<int> q;
        for (auto a:prerequisites){
            int x=a[1],y=a[0];
            e[x].push_back(y);
            du[y]++;
        }
        for (int i=0;i<n;i++){
            if (du[i]==0){
                cnt++;
                q.push(i);
            }
        }
        while (!q.empty()){
            int u=q.front();
            q.pop();
            for (auto v:e[u]){
                du[v]--;
                if (!du[v]){ 
                    cnt++;
                    q.push(v);
                }
            }
        }
        return cnt==n;
    }
};
相关推荐
Тиё Сиротака4 小时前
红包分配算法的严格数学理论与完整实现
算法
potato_may5 小时前
链式二叉树 —— 用指针构建的树形世界
c语言·数据结构·算法·链表·二叉树
Mz12215 小时前
day07 和为 K 的子数组
数据结构
java修仙传6 小时前
每日一题,力扣560. 和为 K 的子数组
算法·leetcode
ada7_6 小时前
LeetCode(python)——148.排序链表
python·算法·leetcode·链表
点云SLAM6 小时前
点云配准算法之-Voxelized GICP(VGICP)算法
算法·机器人·gpu·slam·点云配准·vgicp算法·gicp算法
Albert Edison7 小时前
【项目设计】C++ 高并发内存池
数据结构·c++·单例模式·哈希算法·高并发
资深web全栈开发8 小时前
LeetCode 3625. 统计梯形的数目 II
算法·leetcode·组合数学
橘颂TA8 小时前
【剑斩OFFER】算法的暴力美学——外观数列
算法·leetcode·职场和发展·结构与算法
Liangwei Lin8 小时前
洛谷 P1434 [SHOI2002] 滑雪
算法