leetcode做题笔记210. 课程表 II
现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] = [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。
- 例如,想要学习课程
0,你需要先完成课程1,我们用一个匹配来表示:[0,1]。
返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回 任意一种 就可以了。如果不可能完成所有课程,返回 一个空数组 。
示例 1:
输入:numCourses = 2, prerequisites = [[1,0]]
输出:[0,1]
解释:总共有 2 门课程。要学习课程 1,你需要先完成课程 0。因此,正确的课程顺序为 [0,1] 。
示例 2:
输入:numCourses = 4, prerequisites = [[1,0],[2,0],[3,1],[3,2]] 输出:[0,2,1,3] 解释:总共有 4 门课程。要学习课程 3,你应该先完成课程 1 和课程 2。并且课程 1 和课程 2 都应该排在课程 0 之后。 因此,一个正确的课程顺序是[0,1,2,3]。另一个正确的排序是[0,2,1,3]。
示例 3:
输入:numCourses = 1, prerequisites = [] 输出:[0]
思路一:DFS
c++解法
class Solution {
public:unordered_map<int,unordered_set<int> > map;unordered_set<int> set;unordered_set<int> *quc;vector<int> nul;vector<int> rtu;bool dfs(int i){if (set.find(i)==set.end()){if(!map[i].empty()){if(quc->find(i)!=quc->end())return false;quc->insert(i);for (const auto &item: map[i]){if (!dfs(item))return false; }}rtu.push_back(i);set.insert(i);}return true;}vector<int> findOrder(int numCourses, vector<vector<int>>& prerequisites) {for (const auto &item: prerequisites){map[item[0]].insert(item[1]);}for (int i = 0; i < numCourses; ++i){delete quc;quc = new unordered_set<int>();if(!dfs(i))return nul;}return rtu;}
};
分析:
本题为课程表的相关题,与前一个题差别为需返回学习顺序,利用哈希表存储图中前置节点,利用dfs在集合中找到顺序中最后一个课程相匹配的点,再存放到相应的数组中,最后返回该数组
总结:
本题考察对深度搜索的运用,利用哈希表存储,将匹配的节点放入数组,最后返回即可解决
相关文章:
leetcode做题笔记210. 课程表 II
现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。 例如,想要学习课程 0 ,你需要先完成课程 1…...
【深度学习 AIGC】stable diffusion webUI 使用过程,参数设置,教程,使用方法
文章目录 docker快速启动vae.ckpt或者.safetensorsCFG指数/CFG Scale面部修复/Restore facesRefinerTiled VAEClip Skipprompt提示词怎么写 docker快速启动 如果你想使用docker快速启动这个项目,你可以按下面这么操作(显卡支持CUDA11.8)。如…...
论文阅读 - Detecting Social Bot on the Fly using Contrastive Learning
目录 摘要: 引言 3 问题定义 4 CBD 4.1 框架概述 4.2 Model Learning 4.2.1 通过 GCL 进行模型预训练 4.2.2 通过一致性损失进行模型微调 4.3 在线检测 5 实验 5.1 实验设置 5.2 性能比较 5.5 少量检测研究 6 结论 https://dl.acm.org/doi/pdf/10.1145/358…...
PaddleMIX学习笔记(1)
写在前面 之前对HyperLedger的阅读没有完全结束,和很多朋友一样,同时也因为工作的需要,最近开始转向LLM方向。 国内在大模型方面生态做的最好的,目前还是百度的PaddlePaddle,所以自己也就先从PP开始看起了。 众所周知…...
【网络协议】聊聊HTTPS协议
前面的文章,我们描述了网络是怎样进行传输数据包的,但是网络是不安全的,对于这种流量门户网站其实还好,对于支付类场景其实容易将数据泄漏,所以安全的方式是通过加密,加密方式主要是对称加密和非对称加密。…...
2023.11.2事件纪念
然而造化又常常为庸人设计,以时间的流逝,来洗涤旧迹,仅以留下淡红的血色和微漠的悲哀。 回顾这次事件,最深的感触就是什么是团队的力量! 当我们看到希望快要成功的时候,大家洋溢出兴奋开心的表情,一起的欢声笑语;但看…...
Scala和Play WS库编写的爬虫程序
使用Scala和Play WS库编写的爬虫程序,该程序将爬取网页内容: import play.api.libs.ws._ import scala.concurrent.ExecutionContext.Implicits.global object BaiduCrawler {def main(args: Array[String]): Unit {val url ""val proxy…...
佳易王配件进出库开单打印进销存管理系统软件下载
用版配件进出库开单打印系统,可以有效的管理:供货商信息,客户信息,进货入库打印,销售出库打印,进货明细或汇总统计查询,销售出库明细或汇总统计查询,库存查询,客户往来账…...
【深度学习基础】专业术语汇总(欠拟合和过拟合、泛化能力与迁移学习、调参和超参数、训练集、测试集和验证集)
📢:如果你也对机器人、人工智能感兴趣,看来我们志同道合✨ 📢:不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 📢:文章若有幸对你有帮助,可点赞 👍…...
【C语言:函数栈帧的创建与销毁】
文章目录 前言一、前期准备1.寄存器2.汇编指令3.测试代码 二、解开函数栈帧的神秘面纱1.栈帧大体轮廓2.main函数栈帧的创建3.main函数内执行有效代码4.烫烫烫5.函数参数的传递6.add函数栈帧的创建7.add函数内执行有效代码8.add是如何获得参数的9. add函数栈帧的销毁10.main函数…...
怎么在C++中实现云端存储变量
随着云计算技术的快速发展,现在我们可以将数据存储在云端,以便于在不同设备和地点访问。在C中,我们也可以通过一些方法来实现这个功能。本文将详细介绍如何在C中实现云端存储变量。 首先,我们需要理解,C本身并没有直接…...
短视频矩阵营销系统工具如何助力商家企业获客?
1.批量剪辑技术研发 做的数学建模算法,数学阶乘的组合乘组形式,采用两套查重机制,一套针对素材进行查重抽帧素材,一套针对成片进行抽帧素材打分制度查重,自动滤重计入打分。 2.账号矩阵分发开发 多平台,…...
PCL 计算一个平面与包围盒体素的相交线
文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 基于之前计算的包围盒体素(PCL 包围盒体素化显示),这里使用一个平面与其进行相交,并求出与其中体素单元的相交线。 二、实现代码 //标准文件 #include <iostream> #include <thread>//PCL...
面向教育的计算机视觉和深度学习5
面向教育的计算机视觉和深度学习5 1. 好处智能内容(Smart Content)任务自动化(Task Automation)缩小技能差距(Closing Skill Gap) 2. 应用程序学生学习与福利(Student Learning and Welfare&…...
FPGA芯片内部结构
参考链接:FPGA的进阶之第二章FPGA芯片内部结构(2)...
人工智能AI创作系统ChatGPT网站系统源码+AI绘画系统支持GPT4.0/支持Midjourney局部重绘
一、前言 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建…...
Google 开源项目风格指南
目录 C 风格指南 Objective-C 风格指南 Python 风格指南 Shell 风格指南 TypeScript 风格指南 Javascript 风格指南 HTML/CSS 风格指南 C 风格指南 C 风格指南 - 内容目录 — Google 开源项目风格指南 Objective-C 风格指南 Objective-C 风格指南 - 内容目录 — Googl…...
无限上下文,多级内存管理!突破ChatGPT等大语言模型上下文限制
目前,ChatGPT、Llama 2、文心一言等主流大语言模型,因技术架构的问题上下文输入一直受到限制,即便是Claude 最多只支持10万token输入,这对于解读上百页报告、书籍、论文来说非常不方便。 为了解决这一难题,加州伯克利…...
学习剑指jvm
一直弱,jvm 1、主要解决运行状态的线上系统突然卡死,造成系统无法访问,甚至直接内存溢出异常(Out of Memory,OOM) 2、希望解决线上JVM垃圾回收的相关问题,但无从下手。 3、新项目上线,对设置…...
java网络通信
浏览器中输入:“www.woaijava.com”之后都发生了什么? 请详细阐述 由域名→IP地址 寻找IP地址的过程依次经过了浏览器缓存、系统缓存、hosts文件、路由器缓存、 递归搜索根域名服务器。 建立TCP/IP连接(三次握手具体过程) 由浏览…...
ECharts 5.4.3实战:3步打造科技感爆棚的流光折线图(附完整代码)
ECharts 5.4.3实战:3步打造科技感爆棚的流光折线图(附完整代码) 在数据可视化领域,ECharts凭借其强大的功能和灵活的配置选项,已经成为前端开发者的首选工具之一。特别是其丰富的动画效果,能够为静态数据注…...
为什么MedNeXt能超越Transformer?揭秘大卷积核在医学图像分割中的独特优势
MedNeXt如何用大卷积核重塑医学图像分割?技术优势全解析 当你在深夜的医院影像科,看着屏幕上模糊的CT扫描图,试图从那些灰度渐变中分辨出肿瘤边界时,是否会想过AI模型眼中的世界?医学图像分割——这个决定患者治疗方案…...
技术揭秘:QtScrcpy如何实现跨平台Android投屏与低延迟控制
技术揭秘:QtScrcpy如何实现跨平台Android投屏与低延迟控制 【免费下载链接】QtScrcpy Android实时投屏软件,此应用程序提供USB(或通过TCP/IP)连接的Android设备的显示和控制。它不需要任何root访问权限 项目地址: https://gitcode.com/barry-ran/QtScr…...
终极指南:如何用btcrecover找回你忘记的比特币钱包密码 [特殊字符]️
终极指南:如何用btcrecover找回你忘记的比特币钱包密码 🗝️ 【免费下载链接】btcrecover An open source Bitcoin wallet password and seed recovery tool designed for the case where you already know most of your password/seed, but need assist…...
厦门选117E还是120E?手把手教你为你的城市选择正确的高斯克吕格投影坐标系
厦门GIS项目实战:如何精准选择高斯克吕格投影坐标系 第一次在ArcGIS里看到上百个坐标系选项时,我的鼠标指针在列表上方徘徊了整整十五分钟——就像站在自动售货机前不知道按哪个按钮的新手。特别是当项目 deadline 临近,而厦门市规划局的Shap…...
MATLAB实战:AM调制解调中的噪声影响与优化策略
1. AM调制解调基础与噪声挑战 AM(幅度调制)是模拟通信中最基础的调制方式之一,它的核心思想是通过改变载波信号的幅度来携带信息。我刚开始接触通信仿真时,第一个动手实现的就是AM调制,因为它原理直观,代码…...
PFC5.0代码:含三种矿物组成的岩石或类岩石材料GBM单轴压缩2d算例代码,仅供学习与提升
PFC5.0代码,含三种矿物组成的岩石或者类岩石材料,GBM,单轴压缩2d,算例代码仅供学习以及提升 打开PFC5.0的建模界面,突然想把花岗岩里的石英、长石、云母做成颗粒组合。先整点暴力的——直接拿球体颗粒拼成矿物晶粒&…...
56:L构建蓝队AI:蓝队的智能防御
作者: HOS(安全风信子) 日期: 2026-03-07 主要来源平台: GitHub 摘要: 面对基拉等高级威胁的不断进化,传统的蓝队防御手段已经难以应对。L构建了一套蓝队AI系统,通过AI驱动的威胁检测、自动响应和防御优化&…...
像素幻梦效果对比:原生FLUX.1-dev vs 像素幻梦定制版输出质量分析
像素幻梦效果对比:原生FLUX.1-dev vs 像素幻梦定制版输出质量分析 1. 引言 在数字艺术创作领域,像素艺术因其独特的复古美感和现代应用价值而备受关注。Pixel Dream Workshop(像素幻梦)作为基于FLUX.1-dev模型构建的专业像素艺术…...
Zotero Citation插件开发指南:从环境适配到定制优化的全流程实践
Zotero Citation插件开发指南:从环境适配到定制优化的全流程实践 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation 问题发现:学术写作中的引用…...
