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

qq浏览器网页版打开网页seo关键词排名实用软件

qq浏览器网页版打开网页,seo关键词排名实用软件,广西网站建设哪家好,即墨网站建设电话1、题目描述: 有 n 个城市,其中一些彼此相连,另一些没有相连。如果城市 a 与城市 b 直接相连,且城市 b 与城市 c 直接相连,那么城市 a 与城市 c 间接相连。 省份 是一组直接或间接相连的城市,组内不含其他…

1、题目描述:

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

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

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

返回矩阵中 省份 的数量。

示例 1:

输入:isConnected = [[1,1,0],[1,1,0],[0,0,1]]
输出:2

示例 2:

输入:isConnected = [[1,0,0],[0,1,0],[0,0,1]]
输出:3

提示:

  • 1 <= n <= 200
  • n == isConnected.length
  • n == isConnected[i].length
  • isConnected[i][j] 为 1 或 0
  • isConnected[i][i] == 1
  • isConnected[i][j] == isConnected[j][i]

2、代码:

#include <vector>
#include <functional>  // 用于lambda表达式using namespace std;class Solution {
public:int findCircleNum(vector<vector<int>>& isConnected) {// 获取城市数量int n = isConnected.size();if (n == 0) return 0;// 初始化并查集数据结构vector<int> parent(n);   // parent[i]表示i的父节点vector<int> rank(n, 1); // rank[i]表示以i为根的树的高度(用于按秩合并)// 初始时每个城市自成一类,父节点指向自己for (int i = 0; i < n; ++i) {parent[i] = i;}// 查找函数(带路径压缩)// 作用:找到x的根节点,并将路径上的节点直接指向根(降低后续查找复杂度)function<int(int)> find = [&](int x) {if (parent[x] != x) {parent[x] = find(parent[x]);  // 递归压缩路径}return parent[x];};// 合并函数(按秩合并优化)// 作用:将x和y所在的集合合并为一个集合auto unite = [&](int x, int y) {int rootX = find(x);  // 找到x的根int rootY = find(y);  // 找到y的根// 关键修复:必须检查根是否相同,否则会导致错误合并if (rootX == rootY) return;  // 已在同一集合中,无需合并// 按秩合并:将小树合并到大树下以保持平衡if (rank[rootX] < rank[rootY]) {parent[rootX] = rootY;  // 将rootX的父设为rootY} else {parent[rootY] = rootX;  // 将rootY的父设为rootX// 若两树高度相同,合并后树的高度+1if (rank[rootX] == rank[rootY]) {++rank[rootX];  // 仅在两树同高时增加秩}}};// 遍历邻接矩阵的上三角部分(利用对称性避免重复处理)for (int i = 0; i < n; ++i) {for (int j = i + 1; j < n; ++j) {  // 仅处理i<j的情况if (isConnected[i][j] == 1) {  // 发现相连城市unite(i, j);  // 合并集合}}}// 统计连通分量数量(即根节点数量)int provinces = 0;for (int i = 0; i < n; ++i) {// 根节点的特征是:find(i) == iif (find(i) == i) {++provinces;}}return provinces;}
};

3、解题思路:

注:该题建议使用并查集的思想去解决,因为并查集就是用来解决与动态连通性相关的问题

  1. 初始化并查集:每个城市初始时独立,父节点指向自己,秩初始化为1。
  2. 查找函数(带路径压缩)​:递归查找根节点,并将路径上的节点直接连接到根节点,减少后续查找时间。
  3. 合并函数(按秩合并)​:根据秩的大小合并两个集合,保持树的平衡性,避免树过高。
  4. 遍历邻接矩阵:仅处理上三角部分,避免重复合并相连的城市对。
  5. 统计连通分量:遍历所有城市,统计根节点的数量,每个根节点代表一个省份。
http://www.dtcms.com/wzjs/303127.html

相关文章:

  • 敦煌网网站评价西安市seo排名按天优化
  • 网站如何做浮窗成都高端企业网站建设
  • 做网站需要公司么seo入门培训教程
  • 电子商务网站的建设内容沈阳网站关键字优化
  • 建设网站公司 昆山项目营销推广策划
  • 网站后台编辑器不能用四川疫情最新情况
  • 做美容网站网页推广怎么做的
  • 中国建设网站上报名塔吊司索工现在百度怎么优化排名
  • 什么网站招聘外国人做兼职seosem顾问
  • 开一家做网站的公司搜索app下载安装
  • 企业服务网站建设网站营销策略有哪些
  • 帝国cms 网站地图 自定义首页排名seo
  • 开发公司资料管理seo搜索引擎优化人员
  • 12.12做网站的标题搜索引擎优化案例分析
  • 网站登录怎么做百度霸屏全网推广
  • 深圳企业网站设seo sem推广
  • 珠海集团网站建设报价网页百度网盘
  • wordpress调用js函数网站推广优化外包便宜
  • 做服装外贸的网站百度竞价推广出价技巧
  • 哪些网站可以做微信支付新闻摘抄大全
  • 医院做网站需要多少钱宁波seo外包服务
  • 做外贸哪个网站比较好2017百度seo优化多少钱
  • 如何做网站漂浮广告做网站用哪个软件
  • sae 网站备案seo实战技巧100例
  • 网站开发公司面试题链接推广
  • 做网站用花瓣上的图片会侵权吗三只松鼠搜索引擎营销案例
  • 个人做游戏下载网站侵权吗北京网站优化快速排名
  • 郑州网站制作工作室关键词app
  • 婚礼效果图网站广告联盟
  • 凡科官网登录宁波seo在线优化