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

代码随想录Day55|108. 冗余连接、109. 冗余连接II

目录

    • 108. 冗余连接
      • 解题思路
        • 解法
    • 109. 冗余连接II
      • 解题思路
        • 解法
    • 今日总结

108. 冗余连接

题目链接:KamaCoder
文章讲解:代码随想录
视频讲解:bilibili

解题思路

  本题主要是要将问题转化为集合问题,当再次遇到的一条边的两个节点均在集合中,说明会形成环,那么最先遇到的这条边就是需要输出的结果。

解法
#include <iostream>
#include <vector>
using namespace std;vector<int> father(1005, 0);void init(int n){for(int i=0; i<=n; i++)father[i] = i;
}int find(int u){return u == father[u] ? u : father[u] = find(father[u]);
}bool isSame(int u, int v){u = find(u);v = find(v);return u == v;
}void join(int u, int v){u = find(u);v = find(v);if(u == v)  return ;father[v] = u;
}int main(){int n;cin >> n;int s, t;bool flag = true;init(n);for(int i=0; i<n; i++){int u, v;cin >> u >> v;if(isSame(u, v) && flag){s = u;t = v;flag = false;}join(u, v);}cout << s << ' ' << t << endl;return 0;
}
  • 时间复杂度:O(n)O(n)O(n)
  • 空间复杂度:O(n)O(n)O(n)

109. 冗余连接II

题目链接:KamaCoder
文章讲解:代码随想录
视频讲解:bilibili

解题思路

  相比上一题会复杂一些,主要是题目的分析部分,由于仅仅删去一条边就能成为有向树,因此每个点的入度最多为2,也可能存在成环的情况,那么这里用于判断是否成环的部分就用到了并查集。对于存在入度为2的点的情况,并查集用于判断删去的边是否能让其称为有向树(一开始因为成环所以不是有向树),否则,则直接用并查集找第一条让有向树成环的边输出即可。

解法
#include <iostream>
#include <vector>
using namespace std;void dfs(int node, int n, const vector<vector<int>>& link, vector<bool>& visited){visited[node] = true;for(int j=1; j<=n; j++){if(link[node][j] && !visited[j]){dfs(j, n, link, visited);}}return ;
}int main(){int n, k;cin >> n >> k;if(k < n){cout << -1 << endl;return 0;}vector<vector<int>> link(n+1, vector<int>(n+1, 0));vector<bool> visited(n+1, false);for(int i=0; i<k; i++){int x, y;cin >> x >> y;link[x][y] = 1;}dfs(1, n, link, visited);for(int i=1; i<=n; i++){if(!visited[i]){cout << -1 << endl;return 0;        }}cout << 1 << endl;return 0; }
  • 时间复杂度:O(n)O(n)O(n)
  • 空间复杂度:O(n)O(n)O(n)

今日总结

  补卡中()

http://www.dtcms.com/a/516594.html

相关文章:

  • 最简单的方式做最系统的教学【计算机组成入门到入土】计组核心:一篇文章搞定指令格式与所有寻址方式
  • 30.redis消息队列
  • 如何做体育彩票网站什么是网络营销方案
  • 济南网站优化公司排名四川省建设工程交易中心网站
  • 企业安全防护之——防火墙
  • 电商网站制作公司网站单个页面紧张搜索引擎蜘蛛
  • mac 安装 dmg 格式程序,打开显示已损坏问题
  • CentOS 7 系统安装教程
  • 网站设计制作从哪里学起精准营销定义
  • Python 第二十一节 基础案例练习
  • 视频分析软件识别人像特征
  • Qt:Qt下载慢的解决方案
  • 南昌做公司网站哪家好做一款app需要多少钱费用
  • 怪兽网站模板网站运营谁都可以做吗
  • 金戈博爱联盟游资团队
  • 浏览器插件爬虫,原创,告别爬虫解密
  • 台式机网站建设福州搜索排名提升
  • 【开发指南】全志系列核心板开发过程中的常见问题及排查策略
  • 做搜狗pc网站优化哪些调查网站可以做问卷赚钱
  • 墙绘做网站哪家好长沙网红打卡景点
  • SignalR 底层原理详解
  • 企业应该如何进行网站推广济南建设大厦
  • Java面试题-两个对象相等equals相等吗,equals相等对象相等吗
  • 网站建设汇报材料链接买卖
  • 外贸型网站该如何推广甘肃网络公司网站
  • 外国做的福利小视频在线观看网站网站建设现状调查研究
  • DevEco Studio与Web联合开发:打造鸿蒙混合应用的全景指南
  • 动力网站网站关键词优化的步骤和过程
  • Kotlin 高阶函数在回调设计中的最佳实践
  • gh-ost菜鸟教程