【每日一题】LeetCode 207. 课程表 TypeScript

发布时间:2026/7/29 19:39:37

【每日一题】LeetCode 207. 课程表 TypeScript
你这个学期必须选修numCourses门课程记为0到numCourses - 1。在选修某些课程之前需要一些先修课程。 先修课程按数组prerequisites给出其中prerequisites[i] [ai, bi]表示如果要学习课程ai则必须先学习课程bi。例如先修课程对[0, 1]表示想要学习课程0你需要先完成课程1。请你判断是否可能完成所有课程的学习如果可以返回true否则返回false。示例 1输入numCourses 2, prerequisites [[1,0]]输出true解释总共有 2 门课程。学习课程 1 之前你需要完成课程 0 。这是可能的。示例 2输入numCourses 2, prerequisites [[1,0],[0,1]]输出false解释总共有 2 门课程。学习课程 1 之前你需要先完成​课程 0 并且学习课程 0 之前你还应先完成课程 1 。这是不可能的。提示1 numCourses 20000 prerequisites.length 5000prerequisites[i].length 20 ai, bi numCoursesprerequisites[i]中的所有课程对互不相同function canFinish(numCourses: number, prerequisites: number[][]): boolean { //BFS //1.建一个邻接表记录每门课学完后能解锁哪些课 const graph:number[][] Array.from({length:numCourses},()[]) //2.记录每门课还有多少先修课没学入度 const indegree:number[] new Array(numCourses).fill(0) //3.填表和入度 for(const [a,b] of prerequisites){ //先修b指向a即b学完后才能学a graph[b].push(a) //a多了一个先修要求 indegree[a] } //4.找出所有入度为0的课没有先修要求入队 const queue:number[] [] for(let i0;inumCourses;i){ if(indegree[i]0) queue.push(i) } // 5.开始剥洋葱 let learned 0 //已经学了多少门 while(queue.length0){ const course queue.shift()! //取出一门可以学的课 learned //遍历这门课能解锁的所有后续课 for(const next of graph[course]){ indegree[next]-- //后续课的一个先修课已经完成了 if(indegree[next]0){ //如果后续课的左右先修都完成了它也可以学了 queue.push(next) } } } return learnednumCourses };共勉

相关新闻

【单片机毕设案例分享】基于红外人体检测的智能柜门与照明联动系统实现 基于嵌入式单片机的环境监测与智能执行系统设计(012001)

【单片机毕设案例分享】基于红外人体检测的智能柜门与照明联动系统实现 基于嵌入式单片机的环境监测与智能执行系统设计(012001)

2026/7/29 19:39:37

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

突破性Windows网络性能测试方案:iperf3完整指南与下载安装

突破性Windows网络性能测试方案:iperf3完整指南与下载安装

2026/7/29 19:29:37

突破性Windows网络性能测试方案:iperf3完整指南与下载安装 【免费下载链接】iperf3-win-builds iperf3 binaries for Windows. Benchmark your network limits. 项目地址: https://gitcode.com/gh_mirrors/ip/iperf3-win-builds 还在为网络速度不稳定而烦恼吗…

告别熬夜做PPT✨Paperxie隐藏王牌!一键生成满分学术答辩PPT

告别熬夜做PPT✨Paperxie隐藏王牌!一键生成满分学术答辩PPT

2026/7/29 19:29:37

官方直达:https://www.paperxie.cn 写论文有AI辅助,做答辩PPT却还在熬夜抠排版、凑内容?很多同学论文质量很高,最后偏偏输在答辩PPT粗糙、逻辑混乱、重点模糊上! 相比于烂大街的论文写作、降重功能,Paper…

猫抓插件终极指南:三步搞定网页视频音频下载,开启资源获取新体验!

猫抓插件终极指南:三步搞定网页视频音频下载,开启资源获取新体验!

2026/7/29 20:29:40

猫抓插件终极指南:三步搞定网页视频音频下载,开启资源获取新体验! 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch …

【提示词工程高阶心法】:批判性思维如何重构AI交互逻辑,92%的从业者尚未掌握的底层认知模型

【提示词工程高阶心法】:批判性思维如何重构AI交互逻辑,92%的从业者尚未掌握的底层认知模型

2026/7/29 20:29:40

更多请点击: https://intelliparadigm.com 第一章:提示词工程高阶心法的范式跃迁 传统提示词设计常聚焦于模板填充与关键词堆砌,而高阶心法的本质在于将提示词视为“认知接口”——它不再被动触发模型响应,而是主动塑造推理路径、…

5分钟上手:MIT四足机器人控制系统的终极使用指南

5分钟上手:MIT四足机器人控制系统的终极使用指南

2026/7/29 20:29:40

5分钟上手:MIT四足机器人控制系统的终极使用指南 【免费下载链接】quadruped_ctrl MIT mini cheetah quadruped robot simulated in pybullet environment using ros. 项目地址: https://gitcode.com/gh_mirrors/qu/quadruped_ctrl 四足机器人技术正在改变我…

科普!光伏行业背后的运作机制与关键要点解析

科普!光伏行业背后的运作机制与关键要点解析

2026/7/29 20:29:40

在当今追求绿色能源的时代,光伏行业成为了备受瞩目的焦点。它不仅是应对气候变化的重要力量,也为我们的生活带来了诸多便利。但你是否了解光伏行业背后的运作机制与关键要点呢?下面就让我们一起揭开它的神秘面纱。光伏行业的核心是将太阳能转…

计算机毕业设计之基于SpringBoot的大学生记账管理系统的设计与实现

计算机毕业设计之基于SpringBoot的大学生记账管理系统的设计与实现

2026/7/29 20:29:40

随着新世纪无纸化办公方式的普及,自动化信息处理和基于网络的信息交互方式已被广泛应用。现在很多行业基本上都是交由计算机进行管理和测试,网络与计算机已成为整个线上管理体系中的重要组成部分。虽然信息技术广泛应用和数据存取更加方便,但…

新手必看:LibRtmp-Client-for-Android的RtmpClient类完整使用教程

新手必看:LibRtmp-Client-for-Android的RtmpClient类完整使用教程

2026/7/29 20:19:39

新手必看:LibRtmp-Client-for-Android的RtmpClient类完整使用教程 【免费下载链接】LibRtmp-Client-for-Android It is probably the smallest(~60KB, fat version ~300KB) rtmp client for android. It calls librtmp functions over JNI interface 项目地址: ht…

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

[具身智能-649]:个人电脑搭建 RTSP 服务完整方案(Windows / Ubuntu 双平台,适配 RDK X5 rtsp2display 调试)

2026/7/28 13:30:18

目标:电脑作为RTSP 服务端,循环推送 H264/H265 视频流; RDK X5 通过 rtsp2display 拉流预览,完全不需要在开发板编译 live555。 提供两套成熟方案: ✅ 方案 A:FFmpeg(最简单,优先推…

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

2026/7/28 16:04:36

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

PDF拆分压完图糊了?2026国内免费实测,档案员都在用的组合方案

2026/7/28 16:04:35

说实话,提到PDF拆分再压缩,我真是被折腾得够呛。 上个月公司年度合同归档,一份300多页的PDF总合同,需要按年份拆分成三个独立文件,再分别压缩到10MB以内方便邮件发送各部门确认。我心想这还不简单?先找个海…

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

AI会议纪要怎么做?会议录音转文字加自动整理,三个月实测流程

2026/7/29 0:08:23

打工人总是跑不掉要写会议纪要。 我在一家互联网公司,一周至少八场会:产品评审、数据复盘、项目同步、客户沟通,每场一小时起步。 以前的标准流程是开会拼命记→会后凭记忆补→整理成文档发群,结果经常记不全、记错、记串。 大概年…

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

重庆化龙桥老旧小区改造,怎么搞定夜景照明“不扰居”又能省成本?

2026/7/29 0:08:23

重庆化龙桥靠着嘉陵江,老小区多,最近几年城市更新做的勤,不少住户都反映过小区夜景亮了是好事,可有的灯太晃眼,半夜拉着窗帘都透光,睡不好觉。还有物业算账,这灯开一整晚,公摊电费蹭…

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案

2026/7/29 0:08:23

更多请点击: https://codechina.net 第一章:目标模糊、资源泛滥、进度失控,AI学习计划制定失败的3大隐形陷阱及救急方案 目标模糊:学得越勤,离真实能力越远 当学习目标停留在“学会AI”或“搞懂大模型”这类宽泛表述…