สมมุติว่าเรามีกราฟดาวแบบไม่มีทิศทางหนึ่งกราฟที่มีโหนด n ตัวกำกับอยู่ตั้งแต่ 1 ถึง n อย่างที่เราทราบกันดีว่ากราฟดาวคือกราฟที่มีโหนดกลางหนึ่งโหนดและขอบ n-1 ที่เชื่อมต่อโหนดกลางกับโหนดอื่นทุกโหนด เราต้องหาจุดศูนย์กลางของกราฟดาวที่กำหนด
ดังนั้นหากอินพุตเป็นแบบ
แล้วเอาท์พุตจะเป็น 3 เนื่องจาก 3 อยู่ตรงกลาง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
-
เห็นแล้ว :=ชุดใหม่
-
สำหรับแต่ละขอบ (u,v) ในกราฟ ทำ
-
ถ้าคุณอยู่ในสายตาแล้ว
-
คืนคุณ
-
-
ถ้าเห็น v แล้ว
-
กลับ วี
-
-
แทรกคุณให้เห็น
-
ใส่ v เข้าไป
-
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(graph): seen = set() for u,v in graph: if u in seen: return u if v in seen: return v seen.add(u) seen.add(v) graph = [(1,3),(2,3),(4,3),(5,3),(6,3)] print(solve(graph))
อินพุต
[(1,3),(2,3),(4,3),(5,3),(6,3)]
ผลลัพธ์
3