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

Leetcode—210. 课程表 II【中等】

时间:2024-07-19 16:25:18浏览次数:12  
标签:stat return graph II State vector ans 课程表 Leetcode

2024每日刷题(145)

Leetcode—210. 课程表 II

在这里插入图片描述

dfs实现代码

enum class State {
    init, visiting, visited
};

class Solution {
public:
    vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {
        vector<vector<int>> graph(numCourses);
        vector<int> ans;
        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, ans)) {
                return {};
            }
        }
        std::reverse(ans.begin(), ans.end());
        return ans;
    }

private:
    bool hasCycle(vector<vector<int>> &graph, int u, vector<State>& stat, vector<int>& ans) {
        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, ans)) {
                return true;
            }
        }
        stat[u] = State::visited;
        ans.push_back(u);
        return false;
    }
};

运行结果

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

标签:stat,return,graph,II,State,vector,ans,课程表,Leetcode
From: https://blog.csdn.net/qq_44631615/article/details/140553219

相关文章

  • Leetcode—207. 课程表【中等】
    2024每日刷题(145)Leetcode—207.课程表图实现代码enumclassState{init,visiting,visited};classSolution{public:boolcanFinish(intnumCourses,vector<vector<int>>&prerequisites){vector<vector<int>>graph(numCo......
  • msp430f5529lp移植OLED屏幕 iic 4针 ccs
    OLED.C  代码私发,开发环境ccs......
  • LeetCode 363. 矩形区域不超过 K 的最大数值和
    363.矩形区域不超过K的最大数值和给你一个 mxn 的矩阵 matrix 和一个整数 k ,找出并返回矩阵内部矩形区域的不超过 k 的最大数值和。题目数据保证总会存在一个数值和不超过 k 的矩形区域。示例1:输入:matrix=[[1,0,1],[0,-2,3]],k=2输出:2解释:蓝色边......
  • ucosiii(1): 时钟节拍函数
    时钟节拍中断调用OSTimeTick()函数voidOSTimeTick(void){if(OSRunning!=OS_STATE_OS_RUNNING){return;}>OSTimeTickHook();/*Calluserdefinablehook*/#if(OS_CF......
  • [LeetCode] 1380. Lucky Numbers in a Matrix
    Givenanmxnmatrixofdistinctnumbers,returnallluckynumbersinthematrixinanyorder.Aluckynumberisanelementofthematrixsuchthatitistheminimumelementinitsrowandmaximuminitscolumn.Example1:Input:matrix=[[3,7,8],[9,11,......
  • 代码随想录算法训练营第30天 | 贪心算法 2: 122.买卖股票的最佳时机II、55. 跳跃游戏
    代码随想录算法训练营第30天|贪心算法2:122.买卖股票的最佳时机II、55.跳跃游戏、45.跳跃游戏II、1005.K次取反后最大化的数组和122.买卖股票的最佳时机IIhttps://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/description/代码随想录https://programmerca......
  • 算法篇 滑动窗口 leetCode 水果成篮
    水果成蓝1.题目描述2.图形分析2.1原理解释2.2怎么想出使用滑动窗口2.3图形分析3.代码演示1.题目描述2.图形分析2.1原理解释2.2怎么想出使用滑动窗口2.3图形分析3.代码演示......
  • 代码随想录day 29 买卖股票的最佳时机II | 跳跃游戏 | 跳跃游戏II | K次取反后最大化
    买卖股票的最佳时机II买卖股票的最佳时机II解题思路利用贪心算法,只要股票卖了后一天能获利,就买了,所以只要遍历一下整个数组,根据这个算法就能得到最终获利的数目知识点贪心心得歪打正着的一题跳跃游戏跳跃游戏解题思路利用贪心算法,只需要有一次跳转到数组之外说明就能跳......
  • stm32 - IIC
    目录STM32-IIC1.基本概念2.引脚说明SDASCK/SCL3.传输方向4.通信过程1.空闲状态2.开始信号3.数据发送4.应答信号5.数据接收6.停止信号STM32-IIC1.基本概念半双工同步通信的串行通信接口2.引脚说明SDASCK/SCLIIC总线只需要两根引脚就可以实现通信,一根是数......
  • leetcode 每日1题
    3112.访问消失节点的最少时间fromheapqimportheappop,heappushfromtypingimportListclassSolution:defminimumTime(self,n:int,edges:List[List[int]],disappear:List[int])->List[int]:#创建邻接表adj=[[]for_inrange(n)]......