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

网站手机端首页用什么软件做qq推广工具

网站手机端首页用什么软件做,qq推广工具,个人做的网站有什么危险吗,单位建设的网站属于无形资产吗并查集 并查集主要有三个功能。 寻找根节点,函数:find(int u),也就是判断这个节点的祖先节点是哪个将两个节点接入到同一个集合,函数:join(int u, int v),将两个节点连在同一个根节点上判断两个节点是否在…

并查集

并查集主要有三个功能。

  1. 寻找根节点,函数:find(int u),也就是判断这个节点的祖先节点是哪个
  2. 将两个节点接入到同一个集合,函数:join(int u, int v),将两个节点连在同一个根节点上
  3. 判断两个节点是否在同一个集合,函数:isSame(int u, int v),就是判断两个节点是不是同一个根节点

并查集可以解决的问题:两个节点是否在一个集合,也可以将两个节点添加到一个集合中。

难点在于根的路径压缩的理解

寻找图中是否存在路径 

1971. 寻找图中是否存在路径

有一个具有 n 个顶点的 双向 图,其中每个顶点标记从 0 到 n - 1(包含 0 和 n - 1)。图中的边用一个二维整数数组 edges 表示,其中 edges[i] = [ui, vi] 表示顶点 ui 和顶点 vi 之间的双向边。 每个顶点对由 最多一条 边连接,并且没有顶点存在与自身相连的边。

请你确定是否存在从顶点 source 开始,到顶点 destination 结束的 有效路径 。

给你数组 edges 和整数 nsource 和 destination,如果从 source 到 destination 存在 有效路径 ,则返回 true,否则返回 false 。

class Solution {
public:bool validPath(int n, vector<vector<int>>& edges, int source, int destination) {/*深搜 / 广搜这里选择使用并查集进行实现使用并查集判断两个元素是否在同一个集合内部:step1: 使用join(u,v)把每条边加入到并查集step2: 使用 isSame(int u,int v) 判断是否是同一个根【即是否属于同一个集合】*/// step0: 并查集初始化init(n);// step1: 把每条边加入并查集for(vector<int> edge : edges) { // 每个元素就是一条边join(edge[0],edge[1]);}// step2: 使用 isSame(int u,int v) 判断是否是同一个根return isSame(source, destination);}
private:vector<int> father  = vector<int>(200001,0) ; // 按照节点的大小定义数组长度void init(int n) { // 并查集初始化for(int i = 1; i <= n; i++) {father[i] = i; //初始化。每个元素都是自己的根}}// 并查集里寻找根的过程int find(int u) {return u== father[u] ? u : father[u] = find(father[u]);}// 判断 u 和 v 是否找到同一个根bool isSame(int u, int v) {u = find(u);v = find(v);return u == v;}// 把 v-> u 这条边加入并查集 father[v] = uvoid join(int u, int v) {// 先判断两个元素是否在同一个集合内部u = find(u);v = find(v);if(u == v) return;father[v] = u;}
};

冗余连接 

684. 冗余连接

树可以看成是一个连通且 无环 的 无向 图。

给定往一棵 n 个节点 (节点值 1~n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 到 n 中间,且这条附加的边不属于树中已存在的边。图的信息记录于长度为 n 的二维数组 edges ,edges[i] = [ai, bi] 表示图中在 ai 和 bi 之间存在一条边。

请找出一条可以删去的边,删除后可使得剩余部分是一个有着 n 个节点的树。如果有多个答案,则返回数组 edges 中最后出现的那个。

class Solution {public int[] findRedundantConnection(int[][] edges) {/**图论:删除相对于数来说的多余的一条边使用并查集的思想:把每条边都加入到其中,如果在加入的时候发现两个顶点已经同根;(即在一个并查集中)此时就说明这条边是一条冗余边,删除这条边即可*/int[] ans = null;init(edges.length);for(var edge : edges) {if(!join(edge[0],edge[1])) {ans = edge;break;}}return ans;}private int[] father;private void init(int vLen) { // 并查集的初始化 // 传入顶点数father = new int[vLen+1];for(int i=0; i < vLen; i++) {father[i] = i; // father[i] = i; 自身是自身的根,即刚开始所有节点都是单项的}}// 找到一个元素的根int find(int u) {return father[u] == u ? u: (father[u] = find(father[u]));}// 把 u->v 加入并查集private boolean join(int u, int v) {u = find(u);v = find(v);if(u == v) return false;father[u] = v;return true;}// 判断两个节点是否同根public boolean isSame(int u, int v) {u = find(u);v = find(v);return u == v;}
}

http://www.cotm.com.cn/news/88.html

相关文章:

  • 池州做网站刚刚刚刚刚刚好痛
  • 网站建设服务电话杭州seo外包
  • 做试卷的网站填写电话的广告
  • 电子商务网站建设与管理的书重庆网站制作
  • 为什么会有人攻击我用织梦做的网站微信营销成功案例8个
  • 有人看免费的视频吗seo的工作原理
  • 黄山家居网站建设怎么样外贸网站平台
  • 长春哪家网络公司做网站专业安徽建站
  • 微擎做网站费用网页设计规范
  • 舟山网站开发百度影音在线电影
  • 新疆网站建设平台有哪些谷歌seo快速排名优化方法
  • wordpress插件WZoneseo门户网站优化
  • dreamwearver可以做网站吗seo外包公司兴田德润
  • 钟楼区建设局网站地推接单平台app排行榜
  • 六盘水网站开发灰色关键词排名
  • 网址大全免费下载安装seo优化工作怎么样
  • 河北省社会公益项目建设管理中心网站推广标题怎么写
  • 网站后台如何做下载连接深圳搜索seo优化排名
  • 通过网站做诈骗立案吗网络公司的推广
  • 佛山专业做淘宝网站推广网络营销和网上销售的区别
  • 手机免费制作网站西安百度推广外包
  • 北京关键词优化平台安顺seo
  • 网站建设怎么样培训机构推荐
  • 利用网络媒体营销来做电商网站论文什么时候网络推广
  • 新网站怎样做优化管理培训班
  • 苏州知名网站建设公司网站优化方案范文
  • h5开发wordpress客户端百度运营优化师
  • startit wordpressseo优化多少钱
  • admin登录网站拼多多seo搜索优化
  • 上海门户网站建设方案营销方案包括哪些内容