給出若干閉合區間,合併所有重疊的部分。思路樣例給出的區間列表 => 合併後的區間列表:
[ [
[1, 3], [1, 6],
[2, 6], => [8, 10],
[8, 10], [15, 18]
[15, 18] ]]挑戰
o(n log n) 的時間和 o(1) 的額外空間。
標籤排序 陣列 領英 谷歌
由於題目沒有明確說明輸入集是有序的,所以首先對輸入集排序(自定義比較函式,以 start 為基準),之後開始合併:
首先把第乙個區間存入結果中
然後從第二個開始遍歷區間集:
code
/**
* definition of interval:
* class interval
* };
*/class solution
/*** @param intervals: interval list.
* @return: a new interval list.
*/vectormerge(vector&intervals)
vectorresult;
sort(intervals.begin(), intervals.end(), cmp);
result.push_back(intervals[0]);
for (int i = 1; i < size; i++)
else
}return result;
}};
lintcode練習 156 合併區間
給出若干閉合區間,合併所有重疊的部分。您在真實的面試中是否遇到過這個題?是 given intervals merged intervals 1,3 1,6 2,6 8,10 8,10 15,18 15,18 o n log n 的時間和 o 1 的額外空間。實現 思路 先對列表按照start進行排...
156 合併區間
5.3 本來以為是排好序的區間,後來發現不是。definition of interval public class interval class solution for int i 0 i intervals.size 1 i if tmp1.start tmp2.end tmp1.start ...
LintCode 合併區間
題目描述 給出若干閉合區間,合併所有重疊的部分。樣例 給出的區間列表 合併後的區間列表 1,3 1,6 2,6 8,10 8,10 15,18 15,18 做題思路 先用bool函式規定一種排序演算法,每個陣列的第乙個數字比較,按照公升序的方法排列。運用sort函式將intervals的陣列按照規定...