56 合併區間

2021-10-09 09:23:18 字數 1224 閱讀 9708

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

示例 1:

輸入: intervals = [[1,3],[2,6],[8,10],[15,18]]

輸出: [[1,6],[8,10],[15,18]]

解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

示例 2:

輸入: intervals = [[1,4],[4,5]]

輸出: [[1,5]]

解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。

注意:輸入型別已於2023年4月15日更改。 請重置預設**定義以獲取新方法簽名。

思考

首先對區間按起始位置排個序,方便後面操作。

然後用curr儲存當前最大的合併區間,初始化為第乙個區間[1,3]

遍歷intervals的區間

curr的右邊界》=當前區間的左邊界,就合併區間,要考慮兩種情況

(1,3)和(2,6)就合併成(1,6),右邊界是interval[1]

(1,4)和(2,3)就合併成(1,4),右邊界是curr[1]

總之右邊界更新為較大的那個

curr的右邊界curr就push到result,把當前區間變成新的curr

遍歷結束後,最後乙個curr不要忘了push到result中

**實現

/**

* @param intervals

* @return

*/var merge = function(intervals)

//對區間按起始位置進行排序

intervals.sort(function(a, b))

let curr = intervals[0]

let result =

for (interval of intervals) else

}result.push(curr)

return result

};

知識

1.對區間進行排序,intervals力度元素是陣列,a,b的型別是陣列,a[0],b[0]就是起始的元素,a-b是從小到大。

2.for of 遍歷

複習9.13:印象還挺深刻.

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,...