DeepSeek LeetCode 685. Redundant Connection II Python3 Implement

发布时间:2026/10/20 11:08:18

DeepSeek    LeetCode 685. Redundant Connection II Python3 Implement fromtypingimportListclassSolution:deffindRedundantDirectedConnection(self,edges:List[List[int]])-List[int]:nlen(edges)# Step 1: Find a node with two parents (in-degree 2)parent[0]*(n1)candidate1None# earlier edge u1 - vcandidate2None# later edge u2 - vforu,vinedges:ifparent[v]0:parent[v]uelse:candidate1[parent[v],v]candidate2[u,v]break# Step 2: Union-Find to detect a cycleuflist(range(n1))deffind(x:int)-int:whileuf[x]!x:uf[x]uf[uf[x]]# path halvingxuf[x]returnxforu,vinedges:# Temporarily ignore candidate2ifcandidate2isnotNoneand[u,v]candidate2:continueru,rvfind(u),find(v)ifrurv:# Cycle detectedifcandidate1isnotNone:# Removing candidate2 still leaves a cycle,# so candidate1 must be removedreturncandidate1# No node with two parents: this edge forms the cyclereturn[u,v]uf[ru]rv# No cycle after removing candidate2 - candidate2 is redundantreturncandidate2ApproachThere are only two possible kinds of invalid edges in this problem:A node has two parents — one of its two incoming edges must be removed.There is a cycle — the edge that closes the cycle must be removed.The algorithm:· First, scan edges to find a node v with two parents. Store the earlier edge as candidate1 and the later edge as candidate2.· Run Union-Find while skipping candidate2:· If a cycle still appears, then candidate1 is the redundant edge.· If no cycle appears, then candidate2 is the redundant edge.· If no node has two parents, simply return the first edge that creates a cycle.Complexity· Time: O(n · α(n)), effectively O(n) with union-find.· Space: O(n) for the union-find and parent arrays.
延伸阅读

更多相关文章

2026/10/20 11:03:17

YOLO11结合HAFB-1实现五种羊品种自动识别与边缘部署

从去年底开始,我一直在做牧业场景下的视觉识别项目,其中最有意思也最折磨人的就是“把不同品种的羊自动分出来”。我们项目组代号为“基于YOLO11-HAFB-1的五种羊品种分类识别系统”,这个系统不是简单套一个目标检测模型完事,而是把…

2026/10/20 11:03:17

springboot宜宾旅游网站08225-计算机课程设计、毕业设计

前言 ✨ 博主介绍:一线全栈工程师,毕设实战引路人。技术栈覆盖Java、Python、C#、PHP、Node.js及UniApp跨端开发,擅长多语言项目落地与架构设计。持续分享毕设源码、开题报告、技术选型心得与职场踩坑经验。用工程化思维写代码,帮…

2026/10/20 11:03:17

长对话记忆压缩实战:三层架构解决大模型上下文窗口限制

1. 项目背景与痛点拆解1.1 为什么长对话场景必须解决记忆问题用过大模型产品的朋友应该都有同感:聊天窗口一旦拉长,模型就“开始失忆”。前十分钟还在讨论需求细节,二十分钟后你再提同一个事情,它要么含糊其辞,要么直接…

2026/10/20 12:18:34

STM32飞控开发:从姿态解算到PID控制的工程实践指南

简介:本资源是一套基于STM32微控制器(明确指向F1/F4系列)开发的无人机飞行控制系统完整工程源码,面向嵌入式初学者、飞控爱好者及高校电赛/毕业设计实践者,解决从硬件驱动到姿态闭环控制的全链路实现难题。压缩包共212…

2026/10/20 12:18:34

NAT网络地址转换深度解析:从原理到实战配置与排错

网络地址转换,也就是大家常说的NAT,几乎是每个搞网络的人绕不开的一道坎。刚入行那会儿,我对它的理解就停留在“把内网地址换成公网地址”这一句话上,直到后来做实验、抓包、排查连接问题,才发现这里面的门道远比想象中…

2026/10/20 12:18:34

llama.cpp 2-bit 量化详解:Q2_K 与 IQ2 格式选择指南

1. 从"模型太大跑不动"说起:2-bit 量化到底在解决什么问题如果你最近折腾过本地推理,大概率遇到过这样的场景:好不容易下载了一个 70B 级别的模型,结果发现光是权重文件就占了一百多 GB,普通消费级显卡根本装…

2026/10/20 12:18:34

RAGFlow+DeepDoc深度解析:复杂文档如何打通RAG第一公里

RAGFlow 这套东西,最近我实测了一段时间先说结论:检索增强生成(RAG)应用做不好,十有八九不是大模型的问题,而是文档解析这条“第一公里”没打通。RAGFlow 14.x 开始就把重心压在 DeepDoc 这套文档解析引擎上…

2026/10/20 12:18:34

Kolibri-1、Strands Decider、Muse Gadgets:开源本地智能体三件套详解

1. 内容整体设计与思路拆解1.1 为什么说这是“生态拐点”而不是“又出了三个新库”Kolibri-1、Strands Decider、Muse Gadgets 这三件套,单看任何一件,都只是开源社区里一个不错的项目。但把它们放在一起看,意义就完全不一样了。这不仅仅是三…

2026/10/20 12:13:33

Emmet实战指南:用一行缩写生成HTML/CSS,前端效率翻倍

1. 为什么要掌握Emmet:我亲历的一次惨痛对比先讲一个我真实的开发片段。前几年在公司写一个后台管理系统的列表页,数据表格要渲染七八列,每列还有筛选条件、排序按钮、操作按钮,外加表头工具栏和批量操作区。我当时的习惯是一个标…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑