力扣每日一题---207. 课程表

Problem: 207. 课程表

文章目录

解题方法

y总的 Topsort 模板题

复杂度

  • 时间复杂度:

添加时间复杂度, 示例: O ( n ) O(n) O(n)

  • 空间复杂度:

添加空间复杂度, 示例: O ( n ) O(n) O(n)

Code

cpp 复制代码
class Solution 
{
    int res = 0;
public:
    bool canFinish(int n, vector<vector<int>>& pre) 
    {
        vector<int> d(n,0);//记录每节课的入度
        for(auto p : pre) d[p[0]]++;//将每节课的入度计入数组里面
        queue<int> q;//运用队列储存入度为零的课程
        for(int i = 0;i < d.size(); ++i)//找到所有出边为0的节点放到队列 q 里面
            if(!d[i]) 
                q.push(i);
        
        while(!q.empty())
        {
            auto t = q.front();//取出对头元素
            q.pop();
            res++;//将与 t 相连的课程的入度减一
            for(int i = 0; i < pre.size(); ++i)
            {
                if(t == pre[i][1])
                {
                    if(--d[pre[i][0]]==0) q.push(pre[i][0]);
                }
            }
        }
        return res == n;
    }
};
相关推荐
青少儿编程课堂9 分钟前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:折半搜索优化子集枚举(Meet in the Middle)解析
c++·python·算法·bfs·信息学竞赛
wo_jack2 小时前
C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?
数据结构·c++·面试·stl·list
Oneshot2 小时前
DLX(Dancing Links)算法详解:求解数独最快的算法
算法
文丑颜不良啊2 小时前
LeetCode2541~2560题目解析
java·leetcode
青少儿编程课堂3 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会Scratch考级:校园连连看解析
c++·python·算法·bfs·信息学竞赛
kongdong3 小时前
Hikyuu | RSI均值回归交易策略实现
算法·均值算法·回归·量化交易·交易策略·hikyuu
小王C语言3 小时前
优选算法:分治-归并排序
算法
草莓熊Lotso3 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
小南家的青蛙4 小时前
微服务体系下DevOps运维岗位面试方案设计
运维·面试·职场和发展·devops
非优秀程序员14 小时前
第05章 播放器大战,暴风、快播与那一夜|《互联网产品恩仇录》
算法