当前位置: 首页 > news >正文

LeetCode HOT100系列题解之课程表(9/100)

 一、题目 

         课程表. - 力扣(LeetCode)

 二、题目解析        

          想要学习课程Bi,那么就要学习课程Ai,一个前后关系,比较好表示前后关系的就是建图。如果在学A课之前要学B课,学B课之前又要学A课,那么实际上构成了环,因此比较好想到的就是建图后DFS找环

三、题目代码

class Solution {
public:static const int N = 5010;vector<int> vec[N];int color[N];bool dfs(int u){color[u] = 0;for(int v : vec[u]){if(color[v] == 0) {return false;}else if(color[v] == -1){if(!dfs(v))return false;}}color[u] = 1;return true;}bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {int n = prerequisites.size();for(int i = 0; i < n; i ++)vec[prerequisites[i][1]].push_back(prerequisites[i][0]);memset(color, -1, sizeof color);for(int i = 0; i < numCourses; i ++){if(color[i] == -1){if(!dfs(i))return false;}}return true;}
};


http://www.mrgr.cn/news/61258.html

相关文章:

  • Python基础教程006:while循环的基本语法和基础案例
  • 7 分布式定时任务调度框架
  • 手机租赁系统开发解决方案与市场趋势分析
  • Python语言的字符串处理
  • Elasticsearch:向量数据库基础设施类别的兴衰
  • 【Linux】Linux基础命令(二)
  • 什么是crm软件?最全百科
  • 掌握机器学习中的偏差与方差:模型性能的关键
  • 【pyvimomi脚本实践01】使用 Python 连接 VMware ESXi 并获取主机信息
  • 【ROS2】cv_bridge:ROS图像消息和OpenCV的cv::Mat格式转换库
  • 深度学习(七)深度强化学习:融合创新的智能之路(7/10)
  • pyinstaller 打包python GUI程序避坑指南
  • 串联两个检测模型
  • 金山C++一面-面经总结
  • HTB:Analytics[WriteUP]
  • [Linux进程控制]进程创建|进程终止|进程等待
  • 练习pandas的基础操作,有题目有详解有源码
  • 使用不可靠来源的住宅代理的风险
  • 怎么提取视频里的音频?关于提取视频里音频的几种方法
  • Gartner发布生成式AI的信任、风险和安全管理创新指南:生成式AI的三类风险—内容异常、数据安全和AI应用安全
  • 从理论到实践,精准测试的初创之路
  • Jmeter压力测试简单教程(包括服务器状态监控)
  • 6.标志寄存器
  • 雷池社区版compose配置文件解析-mgt
  • Android实现扫描二维码条形码,实现扫描快递单,相册图片识别快递单 最慢3秒出回调结果
  • WordPress中最值得推荐的AI插件:专家级指南