File tree Expand file tree Collapse file tree 1 file changed +29
-6
lines changed Expand file tree Collapse file tree 1 file changed +29
-6
lines changed Original file line number Diff line number Diff line change 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 ) ;
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+ } ;
You can’t perform that action at this time.
0 commit comments