新闻详情

新闻详情

首页 / 资讯中心 / 详情

LeetCode hot100——207.课程表

发布时间:2026/9/12 19:40:08来源:尧图网络
LeetCode hot100——207.课程表
题目你这个学期必须选修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]中的所有课程对互不相同题解class Solution { public boolean canFinish(int numCourses, int[][] prerequisites) { int[] inDgree new int[numCourses];//存每门课的入度数 ListListInteger adjList new ArrayList();//存前置-后置 for(int i 0;i numCourses;i){ adjList.add(new ArrayList()); } for(int[] prerequisite : prerequisites){ int course prerequisite[0]; int preCourse prerequisite[1]; inDgree[course]; //adjList.get(x).add(y)往 x 对应的子列表追加 y adjList.get(preCourse).add(course); } QueueInteger queue new LinkedList(); for(int i 0;i numCourses;i){ if(inDgree[i] 0){ queue.offer(i); } } int count 0; while(!queue.isEmpty()){ int selectedCourse queue.poll(); count; ListInteger nextCourses adjList.get(selectedCourse); for(int nextCourse : nextCourses){ inDgree[nextCourse]--; if(inDgree[nextCourse] 0){ queue.offer(nextCourse); } } } return count numCourses;//环内节点入度永远不为 0导致count偏小 } }思路思路不断挑选当前没有前置条件入度 0的节点。构建图邻接表记录每一个节点入度将入度等于 0 节点送入队列循环取出节点消除该节点向外发出的边邻居入度 -1。邻居入度归零加入队列。统计一共取出多少节点。取出节点总数 全部节点无环 课程可以全部学完取出数量 总节点存在环路环内节点入度永远不为 0无法被选出来。返回 false
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

让安全驾驶有“AI”相伴|腾视科技DMS视频监控一体机,守护每一次出行! 2026/9/12 20:19:12

让安全驾驶有“AI”相伴|腾视科技DMS视频监控一体机,守护每一次出行!

在物流运输、公共交通(公交、网约车、出租车)以及工程车辆(渣土车、矿卡)等日常运营中,“安全”是永恒的核心。驾驶员疲劳驾驶、分心操作、或车辆出现车道偏移、跟车距离过近等潜在风险,每一秒的疏忽都可能…

阅读更多 →
Arria GX收发器配置原理与Quartus II实战避坑指南 2026/9/12 20:19:12

Arria GX收发器配置原理与Quartus II实战避坑指南

1. Arria GX不是“普通FPGA”,它的收发器是独立硬核,配置逻辑和普通逻辑单元完全不同很多人第一次接触Arria GX系列器件时,会下意识把它当成“带高速接口的普通FPGA”——比如用写组合逻辑或状态机的思路去配置收发器,结果在Quart…

阅读更多 →
AB测试底层统计学原理:显著性、置信度、P值 2026/9/12 20:19:12

AB测试底层统计学原理:显著性、置信度、P值

在互联网产品迭代、运营优化、营销投放的工作中,AB测试是不可或缺的科学决策工具。无论是优化按钮颜色、调整文案话术,还是改版页面布局、调整投放策略,我们都通过AB两组对照实验,判断新版本(B组)是否显著优…

阅读更多 →
遥控器APP自动重连方案:状态机、退避算法与实战排查 2026/9/12 20:19:12

遥控器APP自动重连方案:状态机、退避算法与实战排查

晚上十一点半,空调遥控器APP连不上设备,我蹲在床头对着手机屏幕干瞪眼——这种场景你经历过吗?不只是空调,无人机遥控器、智能灯、玩具车、电视盒子,凡是走APP控制的硬件,几乎都绕不开"断连"这道…

阅读更多 →
FreeRTOS+FATFS:MCU上实现FreeRTOS驱动SPI接口sdcard 2026/9/12 20:19:12

FreeRTOS+FATFS:MCU上实现FreeRTOS驱动SPI接口sdcard

之前,sdcard一直都是使用的sdio接口驱动,使用的是正点原子的sdcard驱动程序和FATFS文件系统,sdcard在FreeRTOS多任务中读写文件,一直都表现正常。但是,后来由于串口比较多,把SDIO接口占用了,不得…

阅读更多 →
基于Django的智能控糖食物推荐系统设计与实现 2026/9/12 20:16:12

基于Django的智能控糖食物推荐系统设计与实现

1. 项目背景与核心价值糖尿病已经成为全球性的健康挑战,根据国际糖尿病联盟最新数据,我国糖尿病患者人数已突破1.4亿。在这样的背景下,控糖饮食管理成为刚需,但普通用户往往面临三大痛点:食物GI值难以获取、个性化推荐…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞