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和我的个人博客原创不易转载经作者同意后请附上原文链接哦~千篇源码题解已开源

相关新闻

DVWA SQL注入实战:3种安全等级(Low/Medium/High)手工注入与自动化工具对比

DVWA SQL注入实战:3种安全等级(Low/Medium/High)手工注入与自动化工具对比

DVWA SQL注入攻防全解析:从手工注入到自动化工具实战1. 初识DVWA与SQL注入DVWA(Damn Vulnerable Web Application)是一个专为安全测试设计的脆弱Web应用平台,它模拟了真实环境中常见的Web漏洞场景。其中SQL注入模块设置了Low、Med…

2026/7/12 11:08:09阅读更多 →
STM32直流电机控制:H-Bridge驱动与嵌入式开发实践

STM32直流电机控制:H-Bridge驱动与嵌入式开发实践

1. 项目背景与硬件选型解析 在嵌入式系统开发中,直流电机控制是一个经典而实用的课题。无论是工业自动化设备、智能家居产品还是教育机器人项目,都需要可靠的电机控制方案。本项目采用Fusion for ARM v8开发板搭配STM32F303RC微控制器,通过H-…

2026/7/12 11:08:09阅读更多 →
社会各界见证:皓贝一口腔医院开业盛典背后的期待与信任

社会各界见证:皓贝一口腔医院开业盛典背后的期待与信任

2026年7月9日上午8时18分,开州大道(西)196号高朋满座。来自开州各界的嘉宾齐聚一堂,共同见证皓贝一口腔医院(开州首家口腔专科医院) 的开业盛典。专业主持人逐一介绍到场嘉宾,小提琴的旋律为这场…

2026/7/12 11:03:09阅读更多 →
基于STM32F103C8T6和PAJ7620U2的手势识别可运行工程(Keil MDK一键编译)

基于STM32F103C8T6和PAJ7620U2的手势识别可运行工程(Keil MDK一键编译)

本文还有配套的精品资源,点击获取 简介:直接适配STM32F103C8T6最小系统板的手势识别项目,核心使用PAJ7620U2光学手势传感器,通过标准I2C接口通信。工程采用STM32标准外设库开发,已集成完整底层驱动:系统…

2026/7/12 12:13:17阅读更多 →
操作系统进程调度算法对比:FCFS、SJF、HRRN、RR 4种策略性能实测

操作系统进程调度算法对比:FCFS、SJF、HRRN、RR 4种策略性能实测

操作系统进程调度算法深度评测:从理论到实践的四种策略对比 引言:为什么需要关注进程调度算法? 在现代计算机系统中,CPU作为最核心的计算资源,其时间分配策略直接影响着整个系统的性能和用户体验。想象一下&#xff0…

2026/7/12 12:13:17阅读更多 →
5分钟极速汉化:Android Studio中文语言包终极安装指南

5分钟极速汉化:Android Studio中文语言包终极安装指南

5分钟极速汉化:Android Studio中文语言包终极安装指南 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Android …

2026/7/12 12:13:17阅读更多 →
告别Windows更新噩梦:专业修复工具全面解析

告别Windows更新噩梦:专业修复工具全面解析

告别Windows更新噩梦:专业修复工具全面解析 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool 你是否曾经面对Windows…

2026/7/12 12:13:17阅读更多 →
RJ-45 网线制作 3 大常见误区解析:从线序混淆到水晶头压接失败

RJ-45 网线制作 3 大常见误区解析:从线序混淆到水晶头压接失败

RJ-45网线制作3大常见误区解析:从线序混淆到水晶头压接失败在搭建家庭网络或小型办公环境时,RJ-45网线制作是每位网络爱好者都可能遇到的实操环节。看似简单的网线制作,却隐藏着诸多技术细节,稍有不慎就会导致网络连接失败或性能下…

2026/7/12 12:13:17阅读更多 →
Docker容器化部署实战:从镜像管理到中间件配置完整指南

Docker容器化部署实战:从镜像管理到中间件配置完整指南

在运维工作中,环境部署和中间件配置往往是耗时且容易出错的环节。传统部署方式需要手动安装依赖、配置环境变量,不仅效率低下,还容易出现环境不一致的问题。Docker容器技术的出现,让应用部署变得简单高效。本文将围绕Docker镜像和…

2026/7/12 12:08:16阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/12 0:02:11阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/12 0:02:11阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/12 0:02:11阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/12 0:02:11阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/11 16:20:28阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/11 23:15:38阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/11 18:12:23阅读更多 →