1
을 만들 관련 목록을 병합
감안할 때 :을 감안할 때 그룹, 개별 세트
[(1,2),(3,4),(5,6),(3,7),(5,7)]
출력 :
[set(1,2), set(3,4,5,6,7)]
설명 : 나는 형편없는 알고리즘을 작성했습니다
(1,2)
(1,2), (3,4)
(1,2), (3,4), (5,6)
(1,2), (3,4,7), (5,6)
(1,2), (3,4,7,5,6)
:
Case 1: both numbers in pair are new (never seen before):
Make a new set with these two numbers
Case 2: one of the number in pair is new, other is already a part of some set:
Merge the new number in other's set
Case 3: both the numbers belong to some set:
Union the second set into first. Destroy the second set.
이 알고리즘에 대한 좀 더 공상적인 해결책이 있습니까?
http://stackoverflow.com/q/27802820/3001761과 같은 의미입니까? – jonrsharpe
@jonrsharpe 코드는 링크에 O (n^2) 복잡도가 있습니다. 제한된 숫자가 있고 dict 사용이 허용되면 단일 반복으로 수행 할 수 있습니다. – jerrymouse
그래, 그 코드를 써라. – jonrsharpe