582. 杀掉进程
- 并查集
考虑一种极端情况,数的结构类似链表,那么时间复杂度直接飙到 N 2 N^2 N2,就TLE
hashmap并查集的话,如果某个结点不存在,如x not in parent
,可以直接让parent[x]=x
,然后返回x
,这样连初始化都免了
class Solution:
def killProcess(self, pid: List[int], ppid: List[int], kill: int) -> List[int]:
result = [kill]
parent = dict(zip(pid, ppid))
parent[0] = 0
for i in parent.keys():
x = self.find(i, parent, kill)
if x == kill:
result.append(i)
return result
def find(self, x, parent, kill):
# 在kill处早停
if parent[x] == kill:
return kill
# 路径压缩
p = parent[x]
if parent