그래서 간격의 끝점을 포함하는 집합이 있습니다. 예 :중첩되는 집합의 간격 찾기
Set s = {(1,4),(3,7),(5,8),(14,17),(0,2),(11,14)}
얼마나 많은 겹치는 간격이 있는지 알아야합니다. 위의 경우, 대답은 내가 합계를 찾아 O(N log N)
시간이 걸리는 알고리즘을 필요로 5
(1,4) --> (3,7), (0,2)
(3,7) --> (5,8),(0,2)
(5,8) -->
(14,17) --> (11,14)
이후가 될 것입니다. 이제 모든 시작점을 정렬하고 여기에 제시된 답변을 모든 점
Find number range intersection에 적용하면 O (N^2) 솔루션을 얻게됩니다. 세트 이외에 어떤 종류의 데이터 구조가 필요할 지에 대한 단서가 있습니까? 감사!
이것은 [간격 나무] (http://en.wikipedia.org/wiki/Interval_tree)와 관련이 있습니다 – qxixp
대기 -'(3,7)'이 (0,2)와 중복되는 이유는 무엇입니까? – jacobm