并查集
该专栏主要是一些关于并查集的题解
jump_into_zehe
这个作者很懒,什么都没留下…
展开
-
朋友圈--并查集
LeetCode朋友圈班上有 N 名学生。其中有些人是朋友,有些则不是。他们的友谊具有是传递性。如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友。所谓的朋友圈,是指所有朋友的集合。给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系。如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道。你必须输出所有学生中的已知的朋友圈总数。示例 1:输入: [[1,1,0],[1,1,0],[0,0,1]]输出: 2原创 2020-08-01 16:11:35 · 634 阅读 · 3 评论 -
除法求值
LeetCode除法求值给出方程式 A / B = k, 其中 A 和 B 均为用字符串表示的变量, k 是一个浮点型数字。根据已知方程式求解问题,并返回计算结果。如果结果不存在,则返回 -1.0。示例 :给定 a / b = 2.0, b / c = 3.0问题: a / c = ?, b / a = ?, a / e = ?, a / a = ?, x / x = ? 返回 [6.0, 0.5, -1.0, 1.0, -1.0 ]输入为: vector<pair<string原创 2020-07-30 23:48:51 · 311 阅读 · 0 评论 -
冗余连接--并查集
LeetCode 684冗余连接在本问题中, 树指的是一个连通且无环的无向图。输入一个图,该图由一个有着N个节点 (节点值不重复1, 2, …, N) 的树及一条附加的边构成。附加的边的两个顶点包含在1到N中间,这条附加的边不属于树中已存在的边。结果图是一个以边组成的二维数组。每一个边的元素是一对[u, v] ,满足 u < v,表示连接顶点u 和v的无向图的边。返回一条可以删去的边,使得结果图是一个有着N个节点的树。如果有多个答案,则返回二维数组中最后出现的边原创 2020-07-30 18:36:47 · 142 阅读 · 0 评论 -
移除最多的同行或同列石头--并查集
LeetCode 947移除最多的同行或同列石头我们将石头放置在二维平面中的一些整数坐标点上。每个坐标点上最多只能有一块石头。每次 move 操作都会移除一块所在行或者列上有其他石头存在的石头。请你设计一个算法,计算最多能执行多少次 move 操作?示例 1:输入:stones = [[0,0],[0,1],[1,0],[1,2],[2,1],[2,2]]输出:5示例 2:输入:stones = [[0,0],[0,2],[1,1],[2,0],[2,2]]输出:3示例 3:输入原创 2020-07-30 18:09:53 · 264 阅读 · 0 评论 -
面试题.17.07.婴儿名字--并查集
LeetCode面试题 17.07.婴儿名字每年,政府都会公布一万个最常见的婴儿名字和它们出现的频率,也就是同名婴儿的数量。有些名字有多种拼法,例如,John 和 Jon 本质上是相同的名字,但被当成了两个名字公布出来。给定两个列表,一个是名字及对应的频率,另一个是本质相同的名字对。设计一个算法打印出每个真实名字的实际频率。注意,如果 John 和 Jon 是相同的,并且 Jon 和 Johnny 相同,则 John 与 Johnny 也相同,即它们有传递和对称性。在结果列表中,选择字典序最小的名字作原创 2020-07-30 16:46:34 · 207 阅读 · 0 评论 -
由斜杠划分区域--并查集
LeetCode 559由斜杠划分区域在由 1 x 1 方格组成的 N x N 网格 grid 中,每个 1 x 1 方块由 /、\ 或空格构成。这些字符会将方块划分为一些共边的区域。(请注意,反斜杠字符是转义的,因此 \ 用 “\” 表示。)。返回区域的数目。示例1:输入:[ " /", "/ "]输出:2解释:2x2 网格如下:示例2:输入:[ "\\/", "/\\"]输出:4解释:(回想一下,因为 \ 字符是转义的,所以 "\\/" 表示 \/,而原创 2020-07-30 15:19:45 · 197 阅读 · 0 评论 -
并查集
并查集并查集是一个用于检测环的算法,比如说有下面这样一个图要求我们检测其中是否存在环并查集的思路如下。我们先找到一条边(0,1),把它加入到集合中再找一条边(1,2),发现1已经在集合中了,所以我们将2加到集合中,(0,1,2)找到边(3,4),把他放到另外一个集合中,(0,1,2),(3,4)找到边(1,3),发现两个端点在两个集合中,所以我们将两个集合合并(0,1,2,3,4)现在我们随便找一条边,该边不是我们前面找的如(0,1),(1,2)等,我们找到边(2,4),发现两个端点都原创 2020-07-30 12:06:52 · 124 阅读 · 0 评论