当前位置: 首页 > wzjs >正文

郑州网站建设搭建公司软文怎么写比较吸引人

郑州网站建设搭建公司,软文怎么写比较吸引人,南京移动网站建设,山东德州网站建设哪家最专业题目 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。 给你…

题目

有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。

省份是一组直接或间接相连的城市,组内不含其他没有相连的城市。

给你一个 n x n 的矩阵 isConnected,其中 isConnected[i][j] = 1 表示第 i 个城市和第 j 个城市直接相连,而 isConnected[i][j] = 0 表示二者不直接相连。

返回矩阵中省份的数量。

一、代码实现

func findCircleNum(isConnected [][]int) int {n := len(isConnected)visited := make([]bool, n)count := 0for i := 0; i < n; i++ {if !visited[i] {dfs(isConnected, visited, i)count++}}return count
}func dfs(isConnected [][]int, visited []bool, i int) {visited[i] = truefor j := 0; j < len(isConnected); j++ {if isConnected[i][j] == 1 && !visited[j] {dfs(isConnected, visited, j)}}
}

二、算法分析

1. 核心思路
  • 深度优先搜索(DFS):通过DFS遍历所有相连的城市
  • 访问标记:使用数组记录已访问的城市
  • 省份计数:每次发现未访问的城市即表示发现一个新的省份
2. 关键步骤
  1. 初始化:创建访问标记数组
  2. 遍历城市:对每个未访问的城市进行DFS
  3. DFS扩展:递归访问所有相连的未访问城市
  4. 计数:每次DFS完成计数加1
3. 复杂度
指标说明
时间复杂度O(n²)需要遍历整个矩阵
空间复杂度O(n)递归栈深度和访问数组的空间消耗

三、图解示例

在这里插入图片描述

四、边界条件与扩展

1. 特殊场景验证
  • 单城市:返回1
  • 全连通:返回1
  • 全不连通:返回城市数量
  • 不对称矩阵:正确处理非对称输入
2. 多语言实现
class Solution:def findCircleNum(self, isConnected: List[List[int]]) -> int:def dfs(i):visited[i] = Truefor j in range(len(isConnected)):if isConnected[i][j] == 1 and not visited[j]:dfs(j)n = len(isConnected)visited = [False] * ncount = 0for i in range(n):if not visited[i]:dfs(i)count += 1return count
class Solution {public int findCircleNum(int[][] isConnected) {int n = isConnected.length;boolean[] visited = new boolean[n];int count = 0;for (int i = 0; i < n; i++) {if (!visited[i]) {dfs(isConnected, visited, i);count++;}}return count;}private void dfs(int[][] isConnected, boolean[] visited, int i) {visited[i] = true;for (int j = 0; j < isConnected.length; j++) {if (isConnected[i][j] == 1 && !visited[j]) {dfs(isConnected, visited, j);}}}
}

五、总结与扩展

1. 核心创新点
  • 图的连通分量:将问题转化为求无向图的连通分量数
  • 高效遍历:利用DFS/BFS避免重复计算
2. 扩展应用
  • 动态连通性:支持动态添加/删除连接
  • 加权连接:考虑连接强度的省份划分
  • 并行计算:对大规模城市数据使用并行DFS
3. 工程优化
  • 并查集实现:使用Union-Find数据结构优化
  • 迭代DFS:减少递归带来的栈空间消耗
  • 内存优化:使用位图代替布尔数组
http://www.dtcms.com/wzjs/20515.html

相关文章:

  • 旅游的网站怎么做俄罗斯搜索引擎浏览器
  • 做配音的网站最近一周新闻大事
  • 产品网站建设找哪家百度关键词优化有效果吗
  • 免费炫酷企业网站源码利于seo的建站系统有哪些
  • 网站建设发票能抵扣增值税项目营销推广方案
  • 网站目录 整理专业seo培训学校
  • 青县有做网站的吗百度竞价登陆
  • 一个人看的片免费高清大全seo营销推广平台
  • 手机网站大全1长沙网站优化方法
  • 网站短信接口怎么做网络营销的六大功能
  • 如何请人做网站安卓系统最好优化软件
  • 百度网盘做网站网页广告怎么做
  • wordpress建站有广告吗深圳网络推广优化
  • 网站哪些数据seo挂机赚钱
  • 上海网站制作公司哪家北京seo运营推广
  • 做化工的有哪些网站域名查询
  • 网站培训搜索引擎调价工具哪个好
  • 网站开发公司所需投入资源网络服务提供商是指
  • 阿里云个人怎么免费做网站seo网络推广企业
  • webform做网站 适应屏幕大小短视频运营是做什么的
  • 做电影售票网站的难点上海站群优化公司
  • 网站页面改版降权广州seo排名优化服务
  • 徐州网站建设培训班免费外链发布平台
  • 怎样创立一个网站网页制作代码
  • 自己开个网站seo咨询推广找推推蛙
  • wordpress 主题banner宁波seo快速排名
  • 众享城市生活app缴费seo自然优化排名技巧
  • 太原网站建设费用网站运营工作内容
  • 广州微信网站建设咨询如何提升百度关键词排名
  • 网站百度品牌搜索引擎服务优化