File tree 2 files changed +38
-22
lines changed
2 files changed +38
-22
lines changed Original file line number Diff line number Diff line change @@ -32,7 +32,10 @@ class UF:
32
32
parent = {}
33
33
cnt = 0
34
34
def __init__(self, M):
35
- # 初始化 parent 和 cnt
35
+ # 初始化 parent,size 和 cnt
36
+ for i in range(M):
37
+ self.parent[i] = i
38
+ self.cnt += 1
36
39
37
40
def find(self, x):
38
41
while x != self.parent[x]:
@@ -77,14 +80,23 @@ class UF:
77
80
size = {}
78
81
cnt = 0
79
82
def __init__(self, M):
80
- # 初始化 parent,size 和 cnt
81
-
83
+ # 初始化 parent,size 和 cnt
84
+ for i in range(M):
85
+ self.parent[i] = i
86
+ self.size[i] = 1
87
+ self.cnt += 1
82
88
def find(self, x):
83
- while x != self.parent[x]:
84
- x = self.parent[x]
85
- # 路径压缩
86
- self.parent[x] = self.parent[self.parent[x]];
87
- return x
89
+ # 根节点
90
+ r = x
91
+ while r != parent[r]:
92
+ r = parent[r]
93
+ k = x
94
+ while k != r:
95
+ # 暂存parent[k]的父节点
96
+ j = parent[k]
97
+ parent[k] = r
98
+ k = j
99
+ return r
88
100
def union(self, p, q):
89
101
if self.connected(p, q): return
90
102
# 小的树挂到大的树上, 使树尽量平衡
@@ -129,21 +141,20 @@ class UF:
129
141
text : `
130
142
class UF:
131
143
parent = {}
132
- def __init__(self, equations):
133
- # 做一些初始化操作
134
-
144
+ size = {}
145
+ cnt = 0
146
+ def __init__(self, M):
147
+ # 初始化 parent,size 和 cnt
148
+ for i in range(M):
149
+ self.parent[i] = i
150
+ self.size[i] = 1
151
+ self.cnt += 1
135
152
def find(self, x):
136
- # 根节点
137
- r = x
138
- while r != parent[r]:
139
- r = parent[r]
140
- k = x
141
- while k != r:
142
- # 暂存parent[k]的父节点
143
- j = parent[k]
144
- parent[k] = r
145
- k = j
146
- return r
153
+ while x != self.parent[x]:
154
+ x = self.parent[x]
155
+ # 路径压缩
156
+ self.parent[x] = self.parent[self.parent[x]];
157
+ return x
147
158
def union(self, p, q):
148
159
if self.connected(p, q): return
149
160
self.parent[self.find(p)] = self.find(q)
Original file line number Diff line number Diff line change @@ -202,6 +202,11 @@ const items = [
202
202
text : "233. 数字 1 的个数" ,
203
203
link : "https://leetcode-cn.com/problems/number-of-digit-one/" ,
204
204
} ,
205
+ {
206
+ text : "357. 计算各个位数不同的数字个数" ,
207
+ link :
208
+ "https://leetcode-cn.com/problems/count-numbers-with-unique-digits/" ,
209
+ } ,
205
210
{
206
211
text : "902. 最大为 N 的数字组合" ,
207
212
link :
You can’t perform that action at this time.
0 commit comments