Merge Intervals
Description
Given a collection of intervals, merge all overlapping intervals.
Example 1:
Input: intervals = [[1,3],[2,6],[8,10],[15,18]] Output: [[1,6],[8,10],[15,18]] Explanation: Since intervals [1,3] and [2,6] overlaps, merge them into [1,6].
Example 2:
Input: intervals = [[1,4],[4,5]] Output: [[1,5]] Explanation: Intervals [1,4] and [4,5] are considered overlapping.
NOTE: input types have been changed on April 15, 2019. Please reset to default code definition to get new method signature.
Constraints:
intervals[i][0] <= intervals[i][1]
Solution(javascript)
const merge = (intervals = []) => {
if (intervals.length === 0) {
return intervals
}
intervals.sort(([a], [c]) => a - c)
const result = [intervals[0]]
let index = 1
while (index <= intervals.length - 1) {
const [a, b] = result[result.length - 1]
const [c, d] = intervals[index]
if (a <= c && c <= b) {
result[result.length - 1] = [a, Math.max(b, d)]
} else {
result.push(intervals[index])
}
index += 1
}
return result
}