給出乙個區間的集合,請合併所有重疊的區間。
示例 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,...