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

力扣2492:并查集/dfs

方法一:并查集。如果不仔细读题,可能会想着把每一个一维数组下标为2的位置进行排序即可。但这是不行的。因为有可能有一些节点在其它集合当中。如果这些节点之间存在一个边权值比节点1所在集合的最小边权值还要小,那么求出来的答案就是错的。

由于城市1与城市n之间至少有一条路径,那么也就意味着城市1与城市n是在同一个集合中。我们只需要求出这个集合中的边权值的最小值即可。

class Solution
{
public:int find(vector<int>& father, int u){return u == father[u] ? u : father[u] = find(father, father[u]);}void join(vector<int>& father, int u, int v){u = find(father, u);v = find(father, v);if (u == v) return;father[v] = u;}int minScore(int n, vector<vector<int>>& roads){vector<int>father(n + 1);for (int i = 1; i <= n; i++){father[i] = i;}for (auto p : roads){join(father, p[0], p[1]);}unordered_map<int, int>mp;//mp.first:根节点编号  mp.second:该集合的边权最小值for (auto p : roads){mp[find(father, p[0])] = INT_MAX;}for (auto p : roads){if (find(father, n) == find(father, p[0])){if (p[2] < mp[find(father, p[0])]){mp[find(father, p[0])] = p[2];}}}return mp[find(father, n)];}
};

并查集的模板,见:并查集(力扣1971)-CSDN博客

方法二:深度优先搜索

由于题目说了确保节点1与节点n之间存在至少一条路径,因此只需要对节点1所在的集合进行深度优先搜索即可。在深度优先搜索的过程中维护边权最小值。

在深搜之前,我们需要构建一个邻接矩阵进行节点的存储。

class Solution
{
public:unordered_map<int, vector<pair<int, int>>>graph;//第一个int,表示起点,第二个int表示终点,第三个int表示边权值int ans = INT_MAX;vector<bool>vis;void dfs(int x){vis[x] = true;for (auto it : graph[x]){ans = min(ans, it.second);if (!vis[it.first]) dfs(it.first);}}int minScore(int n, vector<vector<int>>& roads){for (auto p : roads){graph[p[0]].push_back({ p[1],p[2] });graph[p[1]].push_back({ p[0],p[2] });}vis = vector<bool>(n + 1, false);dfs(1);return ans;}
};

相关文章:

  • 【Flink SQL实战】 UTC 时区格式的 ISO 时间转东八区时间
  • 深度学习3.5图像分类数据集
  • SQL 使用 UPDATE FROM 语法进行更新
  • vue2练习项目 家乡特色网站—前端静态网站模板
  • (7)NodeJS的使用与NPM包管理器
  • OpenCV基础函数学习4
  • 快手砍掉本地生活的门槛
  • 【ZYNQ MP开发】Linux下使用bootgen命令生成BOOT.bin报错架构不对问题探究
  • 科学养生指南:解锁健康生活新方式
  • 3200温控板电路解析
  • XMC4800 芯片深度解读:架构、特性、应用与开发指南
  • WebRTC通信技术EasyRTC音视频实时通话安全巡检搭建低延迟、高可靠的智能巡检新体系
  • 视频生成上下文并行方案
  • SQL 中 ROLLUP 的使用方法
  • 大模型面经 | 春招、秋招算法面试常考八股文附答案(三)
  • vue3 主题模式 结合 element-plus的主题
  • 《数据结构之美--双向链表》
  • Spring_MVC 高级特性详解与实战应用
  • Debian GNU/Linux的新手入门介绍
  • 【Spring】深入解析 Spring AOP 核心概念:切点、连接点、通知、切面、通知类型和使用 @PointCut 定义切点的方法
  • 陈杨梅:刷到“棉花糖爸爸”寻女视频,隐约觉得自己就是爸爸要找的孩子
  • 新疆维吾尔自治区交通运输厅副厅长刘艳东接受审查调查
  • 一年一CT,十年进ICU?关于CT检查致癌的真相
  • 张九思任电子科大副教授,曾以学生身份入选爱思唯尔全球前2%顶尖科学家
  • “站在亚洲实现整体振兴的新起点上”——习近平主席对越南、马来西亚、柬埔寨进行国事访问纪实
  • 湖北一季度GDP为13543.49亿元,同比增长6.3%