C++ | Leetcode C++题解之第207题课程表

题目:

题解:

cpp 复制代码
class Solution {
private:
    vector<vector<int>> edges;
    vector<int> indeg;

public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        edges.resize(numCourses);
        indeg.resize(numCourses);
        for (const auto& info: prerequisites) {
            edges[info[1]].push_back(info[0]);
            ++indeg[info[0]];
        }

        queue<int> q;
        for (int i = 0; i < numCourses; ++i) {
            if (indeg[i] == 0) {
                q.push(i);
            }
        }

        int visited = 0;
        while (!q.empty()) {
            ++visited;
            int u = q.front();
            q.pop();
            for (int v: edges[u]) {
                --indeg[v];
                if (indeg[v] == 0) {
                    q.push(v);
                }
            }
        }

        return visited == numCourses;
    }
};
相关推荐
闪电悠米19 分钟前
力扣hot100-73.矩阵置零-标记数组详解
算法·leetcode·矩阵
一拳一个呆瓜1 小时前
【STL】iostream 编程:使用提取运算符
c++·stl
我不是懒洋洋2 小时前
从零实现一个分布式日志平台:ELK的核心设计
c++
神仙别闹2 小时前
基于QT(C++)实现Windows 自启动项查看和分析
c++·windows·qt
WWTYYDS_6663 小时前
ProtoBuf超详细使用教程
c++
野生风长3 小时前
c++类和对象(this指针,重载operator,习题总结)
java·开发语言·c++
雪的季节3 小时前
Python「假多态」与 C++「真多态」的核心区别
开发语言·c++
过期动态3 小时前
【LeetCode 热题 100】找到字符串中所有字母异位词
java·数据结构·算法·leetcode·职场和发展·rabbitmq
zmzb01034 小时前
C++课后习题训练记录Day166
开发语言·c++
皓月斯语4 小时前
程序设计语言的特点
开发语言·数据结构·c++