haruki1412
Junior Member
Python:
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
graph = defaultdict(list)
for u, v in connections:
graph[v].append((u, True))
graph[u].append((v, False))
count = 0
def dfs(node, parent):
nonlocal count
for nei in graph[node]:
child, sign = nei
if child != parent:
count += (1-sign)
dfs(child, node)
dfs(0, -1)
return count
Python:
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
edges = defaultdict(list)
for edge in connections:
edges[edge[0]].append(edge)
edges[edge[1]].append(edge)
ret = 0
visited = [False] * n
nodes = [0]
visited[0] = True
while nodes:
node = nodes.pop()
for x, y in edges[node]:
if node == x:
if not visited[y]:
ret += 1
nodes.append(y)
visited[y] = True
else:
if not visited[x]:
nodes.append(x)
visited[x] = True
return ret
Bác nào biết tại sao Iterative lại đạt 100% beat về speed
Nhưng recursive chỉ beats ~ 70%
Cần cao nhân giải thích dùm
Last edited: