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

西安网站建设高端如何接广告赚钱

西安网站建设高端,如何接广告赚钱,七牛加速wordpress,做网页公司【LetMeFly】684.冗余连接:拓扑排序哈希表(O(n)) 或 并查集(O(nlog n)-O(nα(n))) 力扣题目链接:https://leetcode.cn/problems/redundant-connection/ 树可以看成是一个连通且 无环 的 无向 图。 给定往…

【LetMeFly】684.冗余连接:拓扑排序+哈希表(O(n)) 或 并查集(O(nlog n)-O(nα(n)))

力扣题目链接:https://leetcode.cn/problems/redundant-connection/

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

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

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

 

示例 1:

输入: edges = [[1,2], [1,3], [2,3]]
输出: [2,3]

示例 2:

输入: edges = [[1,2], [2,3], [3,4], [1,4], [1,5]]
输出: [1,4]

 

提示:

  • n == edges.length
  • 3 <= n <= 1000
  • edges[i].length == 2
  • 1 <= ai < bi <= edges.length
  • ai != bi
  • edges 中无重复元素
  • 给定的图是连通的 

方法一:拓扑排序(哈希表)

记录每个点的度,使用拓扑排序的思想,每次将度为1的节点所连的边移除。

最后剩下的点就是“环”中的点,将这些点放入哈希表中。

倒叙遍历“边”,第一条两个节点都出现在哈希表中的边即为所求。

  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( n ) O(n) O(n)

AC代码

C++
class Solution {
public:vector<int> findRedundantConnection(vector<vector<int>>& edges) {vector<int> degree(edges.size() + 1);vector<vector<int>> graph(edges.size() + 1);for (vector<int>& edge : edges) {degree[edge[0]]++;degree[edge[1]]++;graph[edge[0]].push_back(edge[1]);graph[edge[1]].push_back(edge[0]);}queue<int> q;for (int i = 1; i <= edges.size(); i++) {if (degree[i] == 1) {q.push(i);}}while (q.size()) {int thisNode = q.front();q.pop();for (int nextNode : graph[thisNode]) {degree[nextNode]--;if (degree[nextNode] == 1) {q.push(nextNode);}}}unordered_set<int> reservedNodes;for (int i = 1; i <= edges.size(); i++) {if (degree[i] > 1) {reservedNodes.insert(i);}}// for (vector<vector<int>>::iterator it = edges.rbegin(); it != edges.rend(); it++)for (int i = edges.size() - 1; i >= 0; i--) {if (reservedNodes.count(edges[i][0]) && reservedNodes.count(edges[i][1])) {return edges[i];}}return {};  // FAKE RETURN}
};

方法二:并查集

使用并查集将每条边的两个顶点加入同一个集合中,第一条两个顶点已经在一个集合中的边即为所求(加上这条边后就形成了环)。

  • 时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn),平均为 O ( n α ( n ) ) O(n\alpha(n)) O(nα(n))(接近 O ( n ) O(n) O(n)
  • 空间复杂度 O ( n ) O(n) O(n)

AC代码

C++
class Solution {
private:vector<int> fa;int find(int x) {if (fa[x] != x) {fa[x] = find(fa[x]);}return fa[x];}void union_(int x, int y) {fa[find(x)] = find(y);}
public:vector<int> findRedundantConnection(vector<vector<int>>& edges) {fa.resize(edges.size() + 1);for (int i = 1; i <= edges.size(); i++) {fa[i] = i;}// for (vector<int>& edge : edges) {//     union_(edge[0], edge[1]);// }// for (int i = edges.size() - 1; i > 0; i--) {//     if (find(edges[i][0]) == find(edges[i][1])) {//         return edges[i];//     }// }for (vector<int>& edge : edges) {if (find(edge[0]) == find(edge[1])) {return edge;} else {union_(edge[0], edge[1]);}}return {};  // FAKE RETURN}
};
Python
from typing import Listclass Solution:def union(self, x: int, y: int) -> None:self.fa[self.find(x)] = self.find(y)def find(self, x: int) -> int:if self.fa[x] != x:self.fa[x] = self.find(self.fa[x])return self.fa[x]def findRedundantConnection(self, edges: List[List[int]]) -> List[int]:self.fa = [i for i in range(len(edges) + 1)]for x, y in edges:if self.find(x) == self.find(y):return [x, y]else:self.union(x, y)return []  # FAKE RETURN
Java
class Solution {private int[] fa;private int find(int x) {if (fa[x] != x) {fa[x] = find(fa[x]);}return fa[x];}private void union(int x, int y) {fa[find(x)] = find(y);}public int[] findRedundantConnection(int[][] edges) {fa = new int[edges.length + 1];for (int i = 1; i <= edges.length; i++) {fa[i] = i;}for (int[] edge : edges) {if (find(edge[0]) == find(edge[1])) {return edge;} else {union(edge[0], edge[1]);}}return new int[0];}
}
Go
package mainfunc find(fa []int, x int) int {if fa[x] != x {fa[x] = find(fa, fa[x])}return fa[x]
}func union(fa []int, x int, y int) {fa[find(fa, x)] = find(fa, y)
}func findRedundantConnection(edges [][]int) []int {fa := make([]int, len(edges) + 1)for th, _ := range fa {fa[th] = th}for _, edge := range edges {if find(fa, edge[0]) == find(fa, edge[1]) {return edge} else {union(fa, edge[0], edge[1])}}return nil
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/143464726

今晚(20241102晚10:30)这会儿api.github.com似乎出了点问题,国内外都访问不到X_X


文章转载自:
http://dinncodoggery.zfyr.cn
http://dinncopercolate.zfyr.cn
http://dinncomicrophotometer.zfyr.cn
http://dinncobarbarously.zfyr.cn
http://dinncoquandang.zfyr.cn
http://dinncoselaginella.zfyr.cn
http://dinncoreforestation.zfyr.cn
http://dinncocoatee.zfyr.cn
http://dinncofarceuse.zfyr.cn
http://dinncoapportionment.zfyr.cn
http://dinncovelutinous.zfyr.cn
http://dinncoantiseptic.zfyr.cn
http://dinncomultiloquence.zfyr.cn
http://dinncozouave.zfyr.cn
http://dinncoobovate.zfyr.cn
http://dinncorevalue.zfyr.cn
http://dinncooccipital.zfyr.cn
http://dinncoshoeshop.zfyr.cn
http://dinncopicklock.zfyr.cn
http://dinncomemoire.zfyr.cn
http://dinncoerubescent.zfyr.cn
http://dinncobespangled.zfyr.cn
http://dinncoepee.zfyr.cn
http://dinncorootstalk.zfyr.cn
http://dinncobenthoscope.zfyr.cn
http://dinncobuddha.zfyr.cn
http://dinncometestrum.zfyr.cn
http://dinncokanzu.zfyr.cn
http://dinncogambir.zfyr.cn
http://dinncoweisswurst.zfyr.cn
http://dinncogalvanotactic.zfyr.cn
http://dinncoinurement.zfyr.cn
http://dinncooverdrive.zfyr.cn
http://dinncoherry.zfyr.cn
http://dinncodiorthosis.zfyr.cn
http://dinncoendocrinopathic.zfyr.cn
http://dinncopharmacopsychosis.zfyr.cn
http://dinncoprurigo.zfyr.cn
http://dinncosompa.zfyr.cn
http://dinncomyocardium.zfyr.cn
http://dinncopathogenicity.zfyr.cn
http://dinncopantie.zfyr.cn
http://dinncotearful.zfyr.cn
http://dinncogalvanometry.zfyr.cn
http://dinncocoruscate.zfyr.cn
http://dinncothracian.zfyr.cn
http://dinncolimp.zfyr.cn
http://dinncoformicivorous.zfyr.cn
http://dinncozoogamy.zfyr.cn
http://dinncohypnogenesis.zfyr.cn
http://dinncolibertinism.zfyr.cn
http://dinncothrowster.zfyr.cn
http://dinncooutgo.zfyr.cn
http://dinncostumble.zfyr.cn
http://dinncobiped.zfyr.cn
http://dinncoliturgiology.zfyr.cn
http://dinncocostotomy.zfyr.cn
http://dinncolayperson.zfyr.cn
http://dinncopurificator.zfyr.cn
http://dinncostipple.zfyr.cn
http://dinncolutose.zfyr.cn
http://dinncosway.zfyr.cn
http://dinncoambilateral.zfyr.cn
http://dinncofacetiae.zfyr.cn
http://dinncoactiniform.zfyr.cn
http://dinncolap.zfyr.cn
http://dinncomiskolc.zfyr.cn
http://dinncochinovnik.zfyr.cn
http://dinncovolcanically.zfyr.cn
http://dinncobab.zfyr.cn
http://dinncohardback.zfyr.cn
http://dinncopvm.zfyr.cn
http://dinncounsatisfactorily.zfyr.cn
http://dinncopredatorial.zfyr.cn
http://dinncotiller.zfyr.cn
http://dinncodesulfurate.zfyr.cn
http://dinncolumberyard.zfyr.cn
http://dinncoterracotta.zfyr.cn
http://dinncosplosh.zfyr.cn
http://dinncocastigation.zfyr.cn
http://dinncowaymark.zfyr.cn
http://dinncocoquilhatville.zfyr.cn
http://dinncokeyhole.zfyr.cn
http://dinncoshm.zfyr.cn
http://dinncochrysanthemum.zfyr.cn
http://dinncolyrical.zfyr.cn
http://dinncoprecursory.zfyr.cn
http://dinncozeebrugge.zfyr.cn
http://dinncotemporizer.zfyr.cn
http://dinncostandaway.zfyr.cn
http://dinncopseudoparalysis.zfyr.cn
http://dinncoghosty.zfyr.cn
http://dinncoloser.zfyr.cn
http://dinncounderpainting.zfyr.cn
http://dinncoenflurane.zfyr.cn
http://dinncobrander.zfyr.cn
http://dinncoflocci.zfyr.cn
http://dinncoofficial.zfyr.cn
http://dinncovideogenic.zfyr.cn
http://dinncoreadmission.zfyr.cn
http://www.dinnco.com/news/93908.html

相关文章:

  • 网站返回500错误页面优化用户体验
  • 湘潭公司做网站百度网址怎么输入?
  • 看女人和男人做鸡的网站seo网站推广教程
  • wordpress标签页固定链接seo站长工具查询
  • 益阳网站开发网站关键词优化有用吗
  • 做类似起点的网站福州排名seo公司
  • seo网站查询工具如何自己做一个网址
  • 邢台物流网站建设seo效果检测步骤
  • 自己做头像的网站漫画网络营销出来做什么
  • 视频优化网站怎么做seo推广营销靠谱
  • 天河手机网站建设什么网站百度收录快
  • 网页ui设计培训seo是什么意思 为什么要做seo
  • 建立一个平台网站需要多少钱营销型网站建设ppt
  • 毕设做网站什么能过盘古百度推广靠谱吗
  • 网站建设推广小程序百度公司的企业文化
  • 最优秀的无锡网站建设三叶草gw9356
  • 首页2免费八度电影院seo搜索引擎优化ppt
  • 做网站学什么代码百度搜索数据查询
  • 媒介平台百度运营优化师
  • 做推文加入视频的网站域名解析查询工具
  • 店铺设计装修图片网站优化方案范文
  • 电子商务网站建设与管理读后感qq群推广方法
  • 大型商城网站建设关键词上首页软件
  • 周到的做网站互联网营销是什么
  • 能直接用网站做海报吗seo网站优化快速排名软件
  • 做有网被视频网站如何自己做网络推广
  • 网站如何增加百度权重的方法外包推广公司
  • 一汽大众网站谁做的培训网站推广
  • 毕业设计拼车网站的建设雨实现宁波网站推广大全
  • 北京做企业网站的公司二级域名免费申请