mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-10 04:06:51 +08:00
Update
This commit is contained in:
@ -238,4 +238,35 @@ void backtracking(参数) {
|
|||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## 并查集
|
||||||
|
|
||||||
|
int n = 1005; // 更具题意而定
|
||||||
|
int father[1005];
|
||||||
|
|
||||||
|
// 并查集初始化
|
||||||
|
void init() {
|
||||||
|
for (int i = 0; i < n; ++i) {
|
||||||
|
father[i] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 并查集里寻根的过程
|
||||||
|
int find(int u) {
|
||||||
|
return u == father[u] ? u : father[u] = find(father[u]);
|
||||||
|
}
|
||||||
|
// 将v->u 这条边加入并查集
|
||||||
|
void join(int u, int v) {
|
||||||
|
u = find(u);
|
||||||
|
v = find(v);
|
||||||
|
if (u == v) return ;
|
||||||
|
father[v] = u;
|
||||||
|
}
|
||||||
|
// 判断 u 和 v是否找到同一个根
|
||||||
|
bool same(int u, int v) {
|
||||||
|
u = find(u);
|
||||||
|
v = find(v);
|
||||||
|
return u == v;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
(持续补充ing)
|
(持续补充ing)
|
||||||
|
Reference in New Issue
Block a user