Maktub_Wiki Maktub_Wiki
主站 (opens new window)
  • 服务搭建
  • 网络服务
  • 开源框架
  • 操作系统
  • iOS/MacOS
  • 算法导论(Python)
  • Leetcode
  • 线性代数
主站 (opens new window)
  • 服务搭建
  • 网络服务
  • 开源框架
  • 操作系统
  • iOS/MacOS
  • 算法导论(Python)
  • Leetcode
  • 线性代数
  • 数据结构

    • 树状数组
    • 位存储
    • 并查集
    • 算法

      • Floyd算法
      • Dijkstra算法
      • Bellman-Ford算法
      • Prim算法
      • Kruskal算法
      • KMP算法
    • Leetcode
    • 数据结构
    Maktub_小明
    2024-01-09
    目录

    并查集

    # 说明

    父节点快速查询

    # 代码模版

    class UnionFind:
        def __init__(self, n):
            self.parent = [i for i in range(n)]
            self.rank = [0] * n
            
        def find(self, x):
            if self.parent[x] != x:
                self.parent[x] = self.find(self.parent[x])
            return self.parent[x]
        
        def union(self, x, y):
            px, py = self.find(x), self.find(y)
            if px == py:
                return False
            if self.rank[px] < self.rank[py]:
                self.parent[px] = py
            elif self.rank[px] > self.rank[py]:
                self.parent[py] = px
            else:
                self.parent[py] = px
                self.rank[px] += 1
            return True
    
    上次更新: 2025/03/22, 03:52:10
    位存储
    Floyd算法

    ← 位存储 Floyd算法→

    Theme by Vdoing | Copyright © 2021-2025 Maktub_小明 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式