Leetcode 并查集模板

简介: Leetcode 并查集模板
class UnionFind:
    def __init__(self, n):
        self.count = n
        self.p = [i for i in range(n)]
    def parent(self, i):
        root = i
        while self.p[root] != root:
            root = self.p[root]
        while self.p[i] != i:
            x = i
            i = self.p[i]
            self.p[x] = root
        return root
    def union(self, i, j):
        p1 = self.parent(self.p, i)
        p2 = self.parent(self.p, j)
        self.p[p1] = p2
相关文章
|
5月前
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】专题三:二分查找模板
【LeetCode刷题】专题三:二分查找模板
|
5月前
|
算法
【经典LeetCode算法题目专栏分类】【第9期】深度优先搜索DFS与并查集:括号生成、岛屿问题、扫雷游戏
【经典LeetCode算法题目专栏分类】【第9期】深度优先搜索DFS与并查集:括号生成、岛屿问题、扫雷游戏
|
存储 算法 API
LeetCode算法小抄 -- 经典图论算法 之 并查集算法
LeetCode算法小抄 -- 经典图论算法 之 并查集算法
|
存储 算法
从小白开始刷算法 并查集篇 leetcode.547
从小白开始刷算法 并查集篇 leetcode.547
|
存储 算法 索引
从小白开始刷算法 并查集篇 leetcode.200
从小白开始刷算法 并查集篇 leetcode.200
[leetcode] 827. 最大人工岛 | 二维并查集
[leetcode] 827. 最大人工岛 | 二维并查集
72 0
Leetcode-每日一题886. 可能的二分法(种类并查集)
时间复杂度:O(2 * n + m),其中n表示点的个数,m表示dislikes数组的长度,维护一个2 * n的种类并查集,需要O(2 * n)的时间,find和union种类并查集需要O(m)的时间。
128 0
Leetcode-每日一题886. 可能的二分法(种类并查集)
|
机器学习/深度学习 人工智能 算法
leetcode-每日一题565. 数组嵌套(标记图和并查集)
这题告诉我们数组内的数字是0-N-1,且不会重复,我们可以把A[i] , A[A[i]]…看成一个环,数组可以被分成多个环,我们只需计算多个环中的最大长度即可
78 0
leetcode-每日一题565. 数组嵌套(标记图和并查集)
|
算法 C++ Python
queue队列算法模板-附LeetCode每日一题题解:1823. 找出游戏的获胜者-题解-python && C++源代码
queue队列算法模板-附LeetCode每日一题题解:1823. 找出游戏的获胜者-题解-python && C++源代码
queue队列算法模板-附LeetCode每日一题题解:1823. 找出游戏的获胜者-题解-python && C++源代码
|
算法 机器人 Python
DFS逛街算法模板-附剑指offer习题-LeetCode-深度优先搜索
DFS逛街算法模板-附剑指offer习题-LeetCode-深度优先搜索
DFS逛街算法模板-附剑指offer习题-LeetCode-深度优先搜索