lintcode 156 合併區間

2022-03-29 14:43:07 字數 889 閱讀 5117

給出若干閉合區間,合併所有重疊的部分。

樣例給出的區間列表 => 合併後的區間列表:

[ [

[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的陣列按照規定...