สมมติว่าเรามีกราฟแบบมีทิศทาง (directed graph) เราต้องหากราฟย้อนกลับ โดยถ้าเส้นเชื่อมไปจาก u ไป v จะกลายเป็นไปจาก v ไป u อินพุตเป็นรายการความติดกัน (adjacency list) ถ้ามี n โหนด โหนดจะเป็น (0, 1, ..., n-1)
ตัวอย่าง: กราฟต้นฉบับ [[1,2],[4],[4],[1,2],[3]] ผลลัพธ์คือ [[], [0, 3], [0, 3], [4], [1, 2]]
ขั้นตอนการแก้ปัญหา
- สร้าง
ansเป็นลิสต์ของnลิสต์ว่าง โดยn= จำนวนโหนด - สำหรับแต่ละ index
iและรายการติดกันlในgraph:- สำหรับแต่ละ
xในl:- เพิ่ม
iเข้าans[x]
- เพิ่ม
- สำหรับแต่ละ
- คืนค่า
ans
ตัวอย่างโค้ด Python
class Solution:
def solve(self, graph):
ans = [[] for _ in graph]
for i, l in enumerate(graph):
for x in l:
ans[x].append(i)
return ans
ob = Solution()
graph = [[1,2],[4],[4],[1,2],[3]]
print(ob.solve(graph))
# Output: [[], [0, 3], [0, 3], [4], [1, 2]]
อินพุต / เอาต์พุต
Input: [[1,2],[4],[4],[1,2],[3]]
Output: [[], [0, 3], [0, 3], [4], [1, 2]]