思路:
會出現(xiàn)的情況:
相交:[0, 4] [2, 3]; [0, 3] [1,4]
不相交
先將所有數(shù)組進行排列,按照start的值從小到大排,如果start相等,按照end的值從小到大排
所以if 不相交, 即interval.end < interval2.start; 進行l(wèi)ist.add(interval), interval = interval2
else就是相交的兩種情況interval.end > interval2.end & interval.end > interval2.start 但< interval2.end
進行new interval(start = interval.start, end = Math.max(interval2.end, interval.end)
list.add(interval)
時間復(fù)雜度:排序是binarysearchO(nlogn), 遍歷是O(n),所以時間復(fù)雜度是O(nlogn),空間復(fù)雜度O(1)
知識點:
http://www.cnblogs.com/duange/p/6135943.html
Comparable和camparator compareTo:
comparator的compare會告訴代碼怎么排序
Collections.sort用法:Collections.sort(list, new Comparator<Dog>)