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

LeetCode:53.课程表

目录

1.课程表


1.课程表

        判断课程是否可以学习完,本质其实是在判断是否有环,我们使用一个邻接表来存放课程之间的对应关系,同时使用3个标志位来表示不同的状态,0表示未访问,1表示访问中遇到了环,2表示访问结束且无环,同时用一个bool值来标志是否遇到了环,进行剪枝操作,如果遇到就可以提前返回了

class Solution {vector<vector<int>> edges;vector<int> vis;bool check = true;
public:bool canFinish(int numCourses, vector<vector<int>>& prerequisites) {edges.resize(numCourses);vis.resize(numCourses);for(auto info : prerequisites)edges[info[1]].push_back(info[0]);for(int i = 0; i < numCourses && check == true; i++)if(vis[i] == 0)dfs(i);return check;}void dfs(int i){vis[i] = 1;for(auto x : edges[i]){if(vis[x] == 0){dfs(x);if(check == false) return;}else if(vis[x] == 1){check = false;return;}}vis[i] = 2;}
};

http://www.dtcms.com/a/406308.html

相关文章:

  • 中国县域经济韧性(2006-2021)
  • MySQL零基础学习Day3——函数和约束
  • Bililive-go+cpolar:跨平台直播录制的远程管理方案
  • 飞马无人机正射/倾斜影像数据预处理
  • 2025 AI 技术跃迁与产业融合:从实验室到价值场
  • 济源网站建设价格蓝色系网站
  • MySQL InnoDB缓冲池优化全指南
  • Redis 内存淘汰策略 LRU 和传统 LRU 差异
  • 焞煌网站怎么做产品营销型网站建设
  • 【C++】:stack、queue和deque全面讲解
  • 【MySQL学习笔记】数据库的CURD(一)
  • 使用Excel在标签打印软件快速新建标签,表格导入并实现批量打印
  • WEB日常刷题练习(1)
  • 信阳网站建设的费用潍坊网站建设维护
  • Kafka-消息不丢失
  • 如何查看一个网站用什么程序做的wordpress文章发布保存都不行
  • ReactFlow:构建交互式节点流程图的完全指南
  • 实战:基于 BRPC+Etcd 打造轻量级 RPC 服务——从注册到调用的核心架构与基础实现
  • 多语言网站建设幻境网站开发人员的岗位有
  • 19.9咖啡项目:工程项目级别的IIC主从机模块
  • 【遥感技术】​从CNN到Transformer:基于PyTorch的遥感影像、无人机影像的地物分类、目标检测、语义分割和点云分类
  • PyTorch深度学习遥感影像地物分类与目标检测、分割及遥感影像问题深度学习优化技术
  • html5如何实现网站开发俄文网站推广
  • Vue3》》 ref 获取子组件实例 原理
  • 【C++实战㊶】C++建造者模式:复杂对象构建的秘密武器
  • stm32h743iit6 USB FS 启用 VBUS 或 BCD 前后的区别
  • 资源网站模板网页qq登陆手机版网址
  • vue中.env文件是什么,在vue2和vue3中的区别
  • ADMM 算法的基本概念
  • Vue中如何封装双向绑定的组件