From 823e9a253991683817d783e596a9fd4e3b90af88 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8Fgnacio?= Date: Mon, 6 Mar 2017 19:32:56 -0300 Subject: [PATCH 1/2] =?UTF-8?q?=C3=A4dded=20solution=20for=20Merge=20Inter?= =?UTF-8?q?val?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 56. Merge Intervals.js | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/56. Merge Intervals.js b/56. Merge Intervals.js index 86b5d0c..e3c5882 100644 --- a/56. Merge Intervals.js +++ b/56. Merge Intervals.js @@ -23,17 +23,17 @@ var merge = function(intervals) { var res = []; - + intervals.sort((i1, i2) => i1.start > i2.start ? 1 : -1 ); - + if(intervals.length) { res.push(intervals[0]); } - + for(var i = 1; i < intervals.length; i++) { var interval = intervals[i]; var last = res.pop(); - + if(interval.start > last.end) { res.push(last); res.push(interval); @@ -42,6 +42,29 @@ res.push(last); } } - + return res; - }; \ No newline at end of file + }; + +//Another similar solution + var merge = function(intervals) { + if( intervals === null || intervals.length <= 0) { + return intervals; + } + intervals.sort(function(a,b) { return a.start - b.start}); + var retIntervals = []; + var i = 1; + retIntervals.push(intervals[0]); + console.log(retIntervals); + while(i < intervals.length) { + var lastTime = retIntervals[retIntervals.length - 1]; + var currentTime = intervals[i] + if(lastTime.end < currentTime.start) { + retIntervals.push(currentTime) + } else if(lastTime.end < currentTime.end) { + retIntervals[retIntervals.length - 1].end = currentTime.end; + } + i++; + } + return retIntervals; +}; From fa7f1c20bada1ffa0165382217d3ccd5f54f315d Mon Sep 17 00:00:00 2001 From: ignacio chiazzo cardarello Date: Tue, 14 Mar 2017 09:40:22 -0300 Subject: [PATCH 2/2] Update 56. Merge Intervals.js --- 56. Merge Intervals.js | 1 - 1 file changed, 1 deletion(-) diff --git a/56. Merge Intervals.js b/56. Merge Intervals.js index e3c5882..ef03dc0 100644 --- a/56. Merge Intervals.js +++ b/56. Merge Intervals.js @@ -55,7 +55,6 @@ var retIntervals = []; var i = 1; retIntervals.push(intervals[0]); - console.log(retIntervals); while(i < intervals.length) { var lastTime = retIntervals[retIntervals.length - 1]; var currentTime = intervals[i]