LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数

发布时间:2026/9/12 11:55:42

LeetCode 2685.统计完全连通分量的数量:DFS求每个连通块的边点数 【LetMeFly】2685.统计完全连通分量的数量DFS求每个连通块的边点数力扣题目链接https://leetcode.cn/problems/count-the-number-of-complete-components/给你一个整数n。现有一个包含n个顶点的无向图顶点按从0到n - 1编号。给你一个二维整数数组edges其中edges[i] [ai, bi]表示顶点ai和bi之间存在一条无向边。返回图中完全连通分量的数量。如果在子图中任意两个顶点之间都存在路径并且子图中没有任何一个顶点与子图外部的顶点共享边则称其为连通分量。如果连通分量中每对节点之间都存在一条边则称其为完全连通分量。示例 1输入n 6, edges [[0,1],[0,2],[1,2],[3,4]]输出3解释如上图所示可以看到此图所有分量都是完全连通分量。示例 2输入n 6, edges [[0,1],[0,2],[1,2],[3,4],[3,5]]输出1解释包含节点 0、1 和 2 的分量是完全连通分量因为每对节点之间都存在一条边。 包含节点 3 、4 和 5 的分量不是完全连通分量因为节点 4 和 5 之间不存在边。 因此在图中完全连接分量的数量是 1 。提示1 n 500 edges.length n * (n - 1) / 2edges[i].length 20 ai, bi n - 1ai! bi不存在重复的边解题方法深度优先搜索DFS从0 00到n − 1 n-1n−1遍历每一个节点如果当前节点还没有被遍历过则说明又找到了一个新的联通块从这个节点开始DFS。DFS要遍历与这个节点相连的所有节点和所有边并求出共有多少个。如果边 点 × ( 点 − 1 ) 2 边\frac{点\times(点-1)}{2}边2点×(点−1)​则说明这个连通分量是完全连通分量。注意实际代码实现过程中每条边可能被其相连的两个节点共计遍历两次时间复杂度O ( l e n ( e d g e s ) n ) O(len(edges)n)O(len(edges)n)时间复杂度是边数点数;空间复杂度O ( l e n ( e d g e s ) n ) O(len(edges)n)O(len(edges)n)边的空间复杂度来自图的邻接表点点空间复杂度来自DFS最大深度。AC代码C/* * LastEditTime: 2026-07-11 08:40:46 */typedefpairint,intpii;classSolution{private:vectorboolvisited;vectorvectorintgraph;piidfs(intfrom){visited[from]true;intedge0,node1;for(intto:graph[from]){edge;if(!visited[to]){auto[next_edge,next_node]dfs(to);edgenext_edge;nodenext_node;}}return{edge,node};}public:intcountCompleteComponents(intn,vectorvectorintedges){graph.resize(n);for(vectorintedge:edges){graph[edge[0]].push_back(edge[1]);graph[edge[1]].push_back(edge[0]);}visited.resize(n);intans0;for(inti0;in;i){if(!visited[i]){auto[edge,node]dfs(i);ansedgenode*(node-1);// no need to /2}}returnans;}};同步发文于CSDN和我的个人博客原创不易转载经作者同意后请附上原文链接哦~千篇源码题解已开源
延伸阅读

更多相关文章

2026/9/10 12:26:01

Python地理空间机器学习在雨林保护中的三类落地实践

1. 项目概述:这不是一篇“技术科普”,而是一份来自实地协作现场的实操手记三年前,我在巴西帕拉州一个由当地原住民社区与生态监测NGO共建的遥感哨站里,第一次用Python跑通了基于Sentinel-2影像的森林退化早期识别模型。当时屏幕上…

2026/9/9 21:06:48

遗传算法工程实战:从参数调优到三层动态架构设计

1. 这不是教科书里的遗传算法,而是我调试了73次后才敢写的实操指南“遗传算法”这四个字,听上去像生物课上讲DNA双螺旋时顺带提的一句术语,又像AI面试题里那个永远答不全的“请手推GA流程”。但真实情况是:我在工业缺陷检测项目里…

2026/9/11 7:55:27

3个妙招解决ComfyUI-Manager界面按钮消失问题

3个妙招解决ComfyUI-Manager界面按钮消失问题 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custom nodes of ComfyUI.…

2026/9/12 11:55:33

NSGA-Ⅲ算法在梯级水电-火电联合调度中的应用与优化

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

2026/9/12 11:55:33

用Go写工业网关:单二进制部署与生产环境实践

这不算一个Demo,是一个在车间里跑了两年多的生产系统。当时的需求很朴素:把现场几个车间里不同品牌的PLC、电表、温湿度传感器统一采集上来,汇聚到中控平台。协议五花八门,环境灰尘大、断电是常态,现场工程师对Python环…

2026/9/12 11:55:33

微信外卖小程序源码解析:购物车与订单状态机实现

简介:微信外卖小程序模板是一套可直接运行的完整源码,主要面向需要快速搭建外卖业务的小程序开发者,覆盖了网上订餐、购物车管理、订单结算、支付确认及商家处理等核心流程。资源包共27个文件,大小仅148KB,内含json、j…

2026/9/12 11:55:33

STM32智能小车PID闭环速度控制:编码器测速与串口调参实战

简介:STM32F103ZET6智能小车PID闭环速度控制完整工程源码,面向嵌入式初学者、智能车爱好者与课程设计开发者,主要解决小车电机速度闭环控制中测速、PID参数整定及PWM输出配合的问题。工程基于KEIL5开发,适配STM32F103ZET6主控&…

2026/9/12 11:50:33

本地大模型部署实战:Ollama、transformers与llama.cpp协同指南

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

2026/9/12 2:05:33

超人会飞不算本事:系统稳定依赖清晰规则与边界设计

开头先不绕弯子。“#斯坦李吐槽dc 所以超人是无缘无故会飞的嘛哈哈哈哈哈哈哈锤哥真是技术人才啊!#雷神 #复联”这类调侃式短标题,第一波冲击力在于它把两个宇宙的角色塞进同一个吐槽箱里,但细想一下就能发现,它真正碰到的根本不是…

2026/9/12 3:55:12

超人VS蜘蛛侠:拆解超级IP的影响力与传播方法论

把“蜘蛛侠 vs 超人”放在 CSDN 上聊,可能很多人第一反应是走错片场了。但如果把这两个角色看成“两个持续运营了 80 多年的文化产品”,你会发现,这场比较本质上是两个不同 IP 策略的长期结果对比:超人赢在定义了整个超级英雄题材…

2026/9/12 10:09:03

基于CNN的调制信号识别:MATLAB实现时频图分类实战

简介:本资源是一套面向通信工程与信号处理方向学习者、研究者的深度学习实践方案,聚焦调制信号自动检测与识别这一典型无线通信任务,解决传统方法依赖人工特征、低信噪比下性能下降等痛点。压缩包共12个文件(10.73MB)&…

2026/9/12 0:04:17

MATLAB仿生优化框架:长鼻浣熊算法多策略融合实现

简介:本资源是一份面向智能优化算法研究者与MATLAB初学者的仿生智能算法实践代码包,聚焦于长鼻浣熊优化算法(COA)的多策略改进与性能验证。针对传统COA易陷局部最优、收敛精度不足等问题,作者融合Circle映射初始化提升…

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 JavaWeb 的校园一卡通管理系统的设计与实现 基于 JavaWeb 的校园卡业务管理系统(程序+文档+代码讲解+一条龙定制)

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

2026/9/12 0:04:17

【JAVA毕设源码分享】基于 Java 的图书馆借阅管理平台的搭建与实现 基于 Java 的图书馆综合管理系统(程序+文档+代码讲解+一条龙定制)

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

2026/9/12 6:29:36

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/10 15:19:50

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/12 6:37:43

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

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

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

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