首页 > 其他分享 >Leetcode—207. 课程表【中等】

Leetcode—207. 课程表【中等】

时间:2024-07-19 16:25:00浏览次数:16  
标签:stat return 207 int graph State vector 课程表 Leetcode

2024每日刷题(145)

Leetcode—207. 课程表

在这里插入图片描述

图实现代码

enum class State {
    init, visiting, visited
};

class Solution {
public:
    bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {
        vector<vector<int>> graph(numCourses);
        vector<State> stat(numCourses);

        for(auto it: prerequisites) {
            graph[it[1]].push_back(it[0]);
        }

        for(int i = 0; i < numCourses; i++) {
            if(hasCycle(graph, i, stat)) {
                return false;
            }
        }
        return true;
    }
private:
    bool hasCycle(vector<vector<int>>& graph, int u, vector<State>& stat) {
        if(stat[u] == State::visiting) {
            return true;
        }

        if(stat[u] == State::visited) {
            return false;
        }

        stat[u] = State::visiting;
        for(const int v: graph[u]) {
            if(hasCycle(graph, v, stat)) {
                return true;
            }
        }
        stat[u] = State::visited;
        return false;
    }
};

运行结果

在这里插入图片描述
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

标签:stat,return,207,int,graph,State,vector,课程表,Leetcode
From: https://blog.csdn.net/qq_44631615/article/details/140551466

相关文章

  • LeetCode 363. 矩形区域不超过 K 的最大数值和
    363.矩形区域不超过K的最大数值和给你一个 mxn 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。题目数据保证总会存在一个数值和不超过 k 的矩形区域。示例1:输入:matrix=[[1,0,1],[0,-2,3]],k=2输出:2解释:蓝色边......
  • [LeetCode] 1380. Lucky Numbers in a Matrix
    Givenanmxnmatrixofdistinctnumbers,returnallluckynumbersinthematrixinanyorder.Aluckynumberisanelementofthematrixsuchthatitistheminimumelementinitsrowandmaximuminitscolumn.Example1:Input:matrix=[[3,7,8],[9,11,......
  • 算法篇 滑动窗口 leetCode 水果成篮
    水果成蓝1.题目描述2.图形分析2.1原理解释2.2怎么想出使用滑动窗口2.3图形分析3.代码演示1.题目描述2.图形分析2.1原理解释2.2怎么想出使用滑动窗口2.3图形分析3.代码演示......
  • leetcode 每日1题
    3112.访问消失节点的最少时间fromheapqimportheappop,heappushfromtypingimportListclassSolution:defminimumTime(self,n:int,edges:List[List[int]],disappear:List[int])->List[int]:#创建邻接表adj=[[]for_inrange(n)]......
  • 代码随想录算法训练营第42期 第二天 | LeetCode977. 有序数组的平方、209. 长度最小的
    一、977.有序数组的平方学习链接:有序数组的平方状态:暴力解法与双指针都做出来了时间复杂度:暴力解法O()    双指针解法 O()细节之处:暴力解法1       双指针解法1  暴力解法classSolution{publicint[]sortedSquares(int[]nums){......
  • 代码随想录算法训练营第16天|LeetCode112路径总和LeetCode113路径总和iiLeetCode106.
    代码随想录算法训练营Day16代码随想录算法训练营第16天|LeetCode112路径总和LeetCode113路径总和iiLeetCode106.从中序与后序遍历序列构造二叉树LeetCode105.从前序与中序遍历序列构造二叉树目录代码随想录算法训练营前言LeetCode112路径总和,LeetCode113路径......
  • 代码随想录算法训练营第 15 天 |LeetCode110平衡二叉树 LeetCode257二叉树的所有路径
    代码随想录算法训练营Day15代码随想录算法训练营第15天|LeetCode110平衡二叉树LeetCode257二叉树的所有路径LeetCode404左叶子之和LeetCode222完全二叉树节点之和目录代码随想录算法训练营前言LeetCode110平衡二叉树LeetCode257二叉树的所有路径LeetCode404左......
  • leetcode 1459 矩形面积(postgresql)
    需求表:Points±--------------±--------+|ColumnName|Type|±--------------±--------+|id|int||x_value|int||y_value|int|±--------------±--------+id是该表主键每个点都用二维坐标(x_value,y_value)表示写一个SQL语句,报告由表......
  • (nice!!!)LeetCode 3112. 访问消失节点的最少时间(图论、边的dijkstra、堆优化)
    3112.访问消失节点的最少时间思路:节点n的个数非常大,用普通的dijkstra算法对节点进行枚举是会超时的,时间复杂度为0(n^2)。这里边的数量最大为10^5,可以对边使用dijkstra算法+堆优化操作,时间复杂度为0(mlogm)。节点消失问题,只需要加一个判断条件,判断到每个节点的最小时......
  • 项目名称:智能课程表生成器
    项目名称:智能课程表生成器1.项目概述智能课程表生成器是一个为学生设计的应用程序,它使用算法来帮助学生根据个人偏好和课程安排自动创建课程表。2.问题背景许多学生在每学期开始时需要手动安排自己的课程表,这个过程往往耗时且容易出错。智能课程表生成器旨在自动化这......