首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
DeepSeek LeetCode 210. 课程表 II Java实现
📅 2026/10/3 15:34:26
✍️ 爱科研究院
👁 阅读 3,247
LeetCode 210. 课程表 II思路拓扑排序。若图中有环则无法完成所有课程返回空数组。解法一BFSKahn 算法推荐核心统计入度入度为 0 的入队出队时把邻居入度减 1减到 0 就入队。classSolution{publicint[]findOrder(intnumCourses,int[][]prerequisites){// 建图ListListIntegergraphnewArrayList();for(inti0;inumCourses;i){graph.add(newArrayList());}int[]indegreenewint[numCourses];for(int[]p:prerequisites){// p[1] - p[0]即先修 p[1] 才能修 p[0]graph.get(p[1]).add(p[0]);indegree[p[0]];}// 入度为 0 的课程入队DequeIntegerqueuenewArrayDeque();for(inti0;inumCourses;i){if(indegree[i]0)queue.offer(i);}int[]resultnewint[numCourses];intidx0;while(!queue.isEmpty()){intcurqueue.poll();result[idx]cur;for(intnext:graph.get(cur)){if(--indegree[next]0){queue.offer(next);}}}// 若没能修完所有课程说明有环returnidxnumCourses?result:newint[0];}}解法二DFS三色标记核心0 未访问1 访问中2 已完成。遇到 1 说明有环。后序遍历的逆序即为拓扑序。classSolution{privateListListIntegergraph;privateint[]state;// 0 未访问, 1 访问中, 2 已完成privateint[]result;privateintidx;privatebooleanhasCycle;publicint[]findOrder(intnumCourses,int[][]prerequisites){graphnewArrayList();for(inti0;inumCourses;i){graph.add(newArrayList());}for(int[]p:prerequisites){graph.get(p[1]).add(p[0]);}statenewint[numCourses];resultnewint[numCourses];idxnumCourses-1;// 从后往前填因为后序是逆序for(inti0;inumCourses;i){if(state[i]0){dfs(i);}if(hasCycle)returnnewint[0];}returnresult;}privatevoiddfs(intu){state[u]1;for(intv:graph.get(u)){if(state[v]1){// 遇到正在访问中的节点 - 有环hasCycletrue;return;}if(state[v]0){dfs(v);if(hasCycle)return;}}state[u]2;result[idx--]u;// 后序位置记录}}复杂度分析· 时间O(V E)V 为课程数E 为先修关系数每个节点和边都只处理一次· 空间O(V E)邻接表 入度/状态数组关键点边的方向prerequisites[i] [a, b] 表示 b - a别建反了判断有环BFS 中「出队节点数 numCourses」DFS 中「遇到访问中节点」DFS 逆序递归返回时才记录节点最终结果是拓扑序的反向可以用栈或倒序数组多解拓扑序不唯一题目接受任意合法顺序通常按序号从小到大的入队顺序即可通过两种方法任选其一即可BFS 更直观、更推荐。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/3 15:34:26
MVDR波束形成原理与MATLAB实现:从协方差矩阵到干扰零陷
2026/10/3 15:34:26
PMSM电机控制核心:MTPA与MTPV原理及工程落地
2026/10/3 15:29:26
从聊天框到工作台:WorkBuddy 30条实战技巧与安全边界
2026/10/3 16:24:30
论文浅尝 | DynaSemble:动态集成文本与结构的知识图谱补全模型(ACL2024)实战复现与TaoToken配置
2026/10/3 16:24:30
Cursor超长会话跨窗口关联解决方案:用TaoToken统一API通道保持上下文连续
2026/10/3 16:24:30
写了一个WebDAV的Skill解决OpenClaw AI助手跨平台协作难题:把settings改到TaoToken
2026/10/3 16:24:30
AI小说生成器横向测评:三个步骤、6个工具教你如何写小说,TaoToken统一Key接入实测
2026/10/3 16:24:30
在Ubuntu 22.04上安装Redis:从apt到源码编译的完整TaoToken实践
2026/10/3 16:19:30
水果外卖门店靠什么稳定盈利?
2026/10/3 0:03:29
GitHub 热门: NVIDIA/Model-Optimizer
2026/10/3 0:03:29
C语言流程控制全解析:从if、循环到嵌套与调试实战
2026/10/3 0:03:29
2026全球总决赛观赛攻略:赛程节点、时差换算与作息调整全解析
2026/10/1 22:21:25
网站建设的英语怎么说?别只背单词,看完这套安全完整流程才敢上线
2026/10/2 12:21:42
新手入门看这篇:建设网站加盟避坑指南与SEO实操
2026/10/1 21:38:34
论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具?
2026/10/2 12:19:13
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/3 12:41:10
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/3 15:20:14
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)