Skip to content

Commit 823e9a2

Browse files
ädded solution for Merge Interval
1 parent 13b5dbd commit 823e9a2

File tree

1 file changed

+29
-6
lines changed

1 file changed

+29
-6
lines changed

56. Merge Intervals.js

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,17 @@
2323

2424
var merge = function(intervals) {
2525
var res = [];
26-
26+
2727
intervals.sort((i1, i2) => i1.start > i2.start ? 1 : -1 );
28-
28+
2929
if(intervals.length) {
3030
res.push(intervals[0]);
3131
}
32-
32+
3333
for(var i = 1; i < intervals.length; i++) {
3434
var interval = intervals[i];
3535
var last = res.pop();
36-
36+
3737
if(interval.start > last.end) {
3838
res.push(last);
3939
res.push(interval);
@@ -42,6 +42,29 @@
4242
res.push(last);
4343
}
4444
}
45-
45+
4646
return res;
47-
};
47+
};
48+
49+
//Another similar solution
50+
var merge = function(intervals) {
51+
if( intervals === null || intervals.length <= 0) {
52+
return intervals;
53+
}
54+
intervals.sort(function(a,b) { return a.start - b.start});
55+
var retIntervals = [];
56+
var i = 1;
57+
retIntervals.push(intervals[0]);
58+
console.log(retIntervals);
59+
while(i < intervals.length) {
60+
var lastTime = retIntervals[retIntervals.length - 1];
61+
var currentTime = intervals[i]
62+
if(lastTime.end < currentTime.start) {
63+
retIntervals.push(currentTime)
64+
} else if(lastTime.end < currentTime.end) {
65+
retIntervals[retIntervals.length - 1].end = currentTime.end;
66+
}
67+
i++;
68+
}
69+
return retIntervals;
70+
};

0 commit comments

Comments
 (0)