成都哪些公司做网站好设计上海展会2023
news/
2025/9/24 22:51:49/
文章来源:
成都哪些公司做网站好,设计上海展会2023,佛山正规的免费建站,无锡网站优化公司文章目录1. 题目2. 解题1. 题目
给你一个 n 个点组成的无向图边集 edgeList #xff0c;其中 edgeList[i] [ui, vi, disi] 表示点 ui 和点 vi 之间有一条长度为 disi 的边。请注意#xff0c;两个点之间可能有 超过一条边 。
给你一个查询数组queries #xff0c;其中 qu…
文章目录1. 题目2. 解题1. 题目
给你一个 n 个点组成的无向图边集 edgeList 其中 edgeList[i] [ui, vi, disi] 表示点 ui 和点 vi 之间有一条长度为 disi 的边。请注意两个点之间可能有 超过一条边 。
给你一个查询数组queries 其中 queries[j] [pj, qj, limitj] 你的任务是对于每个查询 queries[j] 判断是否存在从 pj 到 qj 的路径且这条路径上的每一条边都 严格小于 limitj 。
请你返回一个 布尔数组 answer 其中 answer.length queries.length 当 queries[j] 的查询结果为 true 时 answer 第 j 个值为 true 否则为 false 。
示例 1
输入n 3, edgeList [[0,1,2],[1,2,4],[2,0,8],[1,0,16]],
queries [[0,1,2],[0,2,5]]
输出[false,true]
解释上图为给定的输入数据。注意到 0 和 1 之间有两条重边分别为 2 和 16 。
对于第一个查询0 和 1 之间没有小于 2 的边所以我们返回 false 。
对于第二个查询有一条路径0 - 1 - 2两条边都小于 5 所以这个查询我们返回 true 。示例 2
输入n 5,
edgeList [[0,1,10],[1,2,5],[2,3,9],[3,4,13]],
queries [[0,4,14],[1,4,13]]
输出[true,false]
解释上图为给定数据。提示
2 n 10^5
1 edgeList.length, queries.length 10^5
edgeList[i].length 3
queries[j].length 3
0 ui, vi, pj, qj n - 1
ui ! vi
pj ! qj
1 disi, limitj 10^9
两个点之间可能有 多条 边。来源力扣LeetCode 链接https://leetcode-cn.com/problems/checking-existence-of-edge-length-limited-paths 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。 2. 解题
并查集参考数据结构–并查集Disjoint-Set 相关题目 LeetCode 261. 以图判树全部连通边数V-1 LeetCode 305. 岛屿数量 II并查集 LeetCode 323. 无向图中连通分量的数目并查集 LeetCode 684. 冗余连接并查集 LeetCode 685. 冗余连接 II并查集 LeetCode 721. 账户合并并查集字符串合并 LeetCode 737. 句子相似性 II并查集 LeetCode 886. 可能的二分法着色DFS/BFS/拓展并查集 LeetCode 947. 移除最多的同行或同列石头并查集 LeetCode 990. 等式方程的可满足性并查集 LeetCode 959. 由斜杠划分区域并查集 LeetCode 1061. 按字典序排列最小的等效字符串并查集 LeetCode 1101. 彼此熟识的最早时间排序并查集 LeetCode 1202. 交换字符串中的元素并查集 LeetCode 1319. 连通网络的操作次数BFS/DFS/并查集 LeetCode 5510. 保证图可完全遍历并查集 程序员面试金典 - 面试题 17.07. 婴儿名字并查集
limits 短的优先查询边也排序满足要求的在并查集中合并两点
class dsu{ //并查集
public:vectorint f;dsu(int n){f.resize(n);for(int i 0; i n; i)f[i] i;}void merge(int a, int b){int fa find(a), fb find(b);f[fa] fb;}int find(int a){if(a f[a])return a;return f[a] find(f[a]);}
};
class Solution {
public:vectorbool distanceLimitedPathsExist(int n, vectorvectorint edgeList, vectorvectorint queries) {dsu u(n);vectorbool ans(queries.size(), false);vectorint q_id(queries.size());iota(q_id.begin(), q_id.end(), 0); //生成 0,1,2,3...sort(q_id.begin(), q_id.end(),[](auto a, auto b){return queries[a][2] queries[b][2];//对查询的id排序距离小的先查询});sort(edgeList.begin(), edgeList.end(),[](auto a, auto b){return a[2] b[2];//边短的先加入并查集合并});int j 0, limit;for(int i 0; i q_id.size(); i){limit queries[q_id[i]][2];while(j edgeList.size() edgeList[j][2] limit)//距离满足要求{u.merge(edgeList[j][0], edgeList[j][1]);//合并两点j;}if(u.find(queries[q_id[i]][0]) u.find(queries[q_id[i]][1]))ans[q_id[i]] true;}return ans;}
};我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号Michael阿明一起加油、一起学习进步
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/916369.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!