56 合併區間 C

2021-08-29 16:27:00 字數 1010 閱讀 8265

給出乙個區間的集合,請合併所有重疊的區間。

示例 1:

輸入:[[1,3],[2,6],[8,10],[15,18]]輸出:[[1,6],[8,10],[15,18]]解釋:區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].
示例 2:

輸入:[[1,4],[4,5]]輸出:[[1,5]]解釋:區間 [1,4] 和 [4,5] 可被視為重疊區間。
【思路】

第一步:先按照座標軸,將區間排列。具體演算法實現就是以區間裡元素start公升序排列。

第二步:將重合的區域組合成新的區域

組合新的區間的具體演算法為:

1.定義乙個interval temp 存放新組合的區間start和end;

2.迴圈判斷前乙個區間的end和後乙個區間的start的大小,若end>start則說明有交集,再判斷後乙個區間的的end和前乙個區間的end,若後面的end比前乙個區間end小,則前面區間包含後面的區間。誰大就將誰賦值給temp的end。

3.當沒有交集的時候跳出內部迴圈,將新的區間填充到結果集,再進入下乙個區域(可能有交集,也可能沒有交集)。

class solution 

vectormerge(vector& intervals) ;//賦初值,temp為組合新的區間

while (i < intervals.size())

i++;

}else//前後區間沒有交集

}res.push_back(temp);

} return res;

}};

56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。思路 注釋 ...

56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。示例 1 輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 示例 2 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。思路 注釋 ...

56 合併區間

給出乙個區間的集合,請合併所有重疊的區間。輸入 1,3 2,6 8,10 15,18 輸出 1,6 8,10 15,18 解釋 區間 1,3 和 2,6 重疊,將它們合併為 1,6 輸入 1,4 4,5 輸出 1,5 解釋 區間 1,4 和 4,5 可被視為重疊區間。先按首位置進行排序,假設a 1,...