-
Notifications
You must be signed in to change notification settings - Fork 42
/
solution.js
29 lines (29 loc) · 785 Bytes
/
solution.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/**
* Definition for an interval.
* function Interval(start, end) {
* this.start = start;
* this.end = end;
* }
*/
/**
* @param {Interval[]} intervals
* @return {Interval[]}
*/
var merge = function (intervals) {
// 按照start排序
intervals.sort((a, b) => a.start - b.start);
const result = [];
let index = 0;
while (index < intervals.length) {
const startVal = intervals[index].start;
let endVal = intervals[index].end;
index++;
// 看能否合并 更新endVal
while (index < intervals.length && intervals[index].start <= endVal) {
endVal = Math.max(endVal, intervals[index].end);
index++;
}
result.push(new Interval(startVal, endVal));
}
return result;
};