1466. Reorder Routes to Make All Paths Lead to the City Zero
这道题很厉害,contest没有做出来,用inorder degree的思路(topological) 不对
use pos/neg to determine the direction
1 -> 2
[1].add(2)
[2].add(-1)
from collections import defaultdict
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
adj_list = defaultdict(list)
for con in connections:
a,b = con
adj_list[a].append(b)
adj_list[b].append(-a)
self.visited = [0] * n
def dfs(start):
res = 0
for nxt in adj_list[start]:
if self.visited[abs(nxt)] == 1:
continue
if nxt > 0:
res+=1
self.visited[abs(nxt)] = 1
res += dfs(abs(nxt))
return res
self.visited[0] = 1
return dfs(0)
from collections import defaultdict
class Solution:
def minReorder(self, n: int, connections: List[List[int]]) -> int:
adj_list = defaultdict(list)
for con in connections:
a,b = con
adj_list[a].append(b)
adj_list[b].append(-a)
visited = [0] * n
def dfs(start,vis):
res = 0
for nxt in adj_list[start]:
if vis[abs(nxt)] == 1:
continue
if nxt > 0:
res+=1
vis[abs(nxt)] = 1
res += dfs(abs(nxt),vis)
return res
visited[0] = 1
return dfs(0,visited)
Last updated
Was this helpful?