在準備一些編程訪談時,我遇到了一個很好的問題。在重疊間隔中查找基本間隔
給定一組可能重疊的區間,您需要編寫一個函數來返回它們之間的所有基本區間。例如:如果您給出了以下列表對的間隔:{{1,5},{3,10},{5,11},{15,18},{16,20}},那麼您需要返回以下內容:
{{1,3},{3,5},{5,10},{10,11},{15,16},{16,18},{18,20 }}
注意在上述回答下列問題:
- 間隔{11,15}省略了答案,因爲它是 不存在的輸入。
- 由於在{3,10}中定義的起始點「3」在 中,輸入中的區間{1,5}已被分割爲{1,3},{3,5} 將間隔分成兩個基本區間的輸入。在Java中
方法簽名:
List<Pair<Integer, Integer>> generateElementaryIntervals(List<Pair<Integer, Integer> intervals)
一,我想象中的解決方案是將輸入分成不相交集,然後簡單的O(NlogN)排序中的每一個在所有的數字非相交集合將產生答案。有沒有更有效的方法來做到這一點?
你的問題是繼續? – 2011-12-14 08:37:47