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

力扣210. 课程表 II

深度优先遍历

  • 思路:
    • 搜索逻辑参见​​​​​​力扣207.课程表
    • 需要课程安排的顺序,课程搜索完成时,将其存储起来即可;
    • 存储课程的顺序需要注意:
      • 输入依赖中 [A, B]
      • 图中表示 B -> A ,表示先 B 后 A;
      • 可能有其他课程也会依赖 A,比如 [C, A],有向图表示 A -> C;
      • 先标记染色的是叶子节点 C,而先需要安排的课程是 B;
      • 所以存储顺序需要反向;(所以 207 课程表中的思路逻辑描述有误)
class Solution {
public:vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {digraph.resize(numCourses);visited.resize(numCourses);for (const auto & info : prerequisites) {digraph[info[1]].push_back(info[0]);}for (int i = 0; i < numCourses && valid; ++i) {if (visited[i] == 0) {dfs(i);}}if (!valid) {return {};}std::reverse(result.begin(), result.end());return result;}private:void dfs(int u) {// to search statevisited[u] = 1;for (int v : digraph[u]) {// init stateif (visited[v] == 0) {dfs(v);if (!valid) {return;}} else if (visited[v] == 1) {// ringvalid = false;return;}}visited[u] = 2;result.push_back(u);}private:std::vector<std::vector<int>> digraph;std::vector<int> visited;std::vector<int> result;bool valid = true;
};

http://www.lryc.cn/news/279969.html

相关文章:

  • [Docker] Mac M1系列芯片上完美运行Docker
  • CompletableFuture、ListenableFuture高级用列
  • 什么是云服务器,阿里云优势如何?
  • HCIA-Datacom题库(自己整理分类的)_15_VRP平台多选【9道题】
  • html5基础入门
  • JVM工作原理与实战(十五):运行时数据区-程序计数器
  • 计算机体系结构----存储系统
  • 华为OD机试2024年最新题库(Python)
  • 【打卡】牛客网:BM84 最长公共前缀
  • 我在Vscode学OpenCV 图像处理三(图像梯度--边缘检测【图像梯度、Sobel 算子、 Scharr 算子、 Laplacian 算子、Canny 边缘检测】)
  • 2023年全国职业院校技能大赛软件测试赛题—单元测试卷⑤
  • seata分布式事务(与dubbo集成)
  • Leetcod面试经典150题刷题记录 —— 数学篇
  • x-cmd pkg | csview - 美观且高性能的 csv 数据查看工具
  • 前端八股文(性能优化篇)
  • .Net Core项目在linux部署实战 1.sdk下载 2.环境变量配置/ect/profile 3.运行
  • Python 基于Open3D的点云均匀下采样算法
  • 【MySQL】本地创建MySQL数据库详解
  • 18、golang时间管理
  • 远程开发之vacode插件Remote - SSH
  • 大模型实战营Day4 作业
  • 翻译: Streamlit从入门到精通 基础控件 一
  • 【复现】网康科技-防火墙存在RCE漏洞_17
  • vue2、vue3里面去掉访问地址中路由‘#‘号--nginx配置
  • AR HUD全面「上新」
  • Open3D AABB包围盒计算与使用(19)
  • HDFS相关API操作
  • 【AI视野·今日Robot 机器人论文速览 第七十二期】Mon, 8 Jan 2024
  • 背包问题(补充中)
  • 十三、QPalette的简单使用(Qt5 GUI系列)