From 673085af54a8fc1ddd18b47b72084a8cf82519ae Mon Sep 17 00:00:00 2001 From: Deven <63876261+devenperez@users.noreply.github.com> Date: Mon, 2 May 2022 16:46:51 -0400 Subject: [PATCH] Time: 112 ms (95.63%), Space: 18.2 MB (71.72%) - LeetHub --- 56-merge-intervals/56-merge-intervals.py | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 56-merge-intervals/56-merge-intervals.py diff --git a/56-merge-intervals/56-merge-intervals.py b/56-merge-intervals/56-merge-intervals.py new file mode 100644 index 0000000..31cbc15 --- /dev/null +++ b/56-merge-intervals/56-merge-intervals.py @@ -0,0 +1,27 @@ +class Solution(object): + def merge(self, intervals): + """ + :type intervals: List[List[int]] + :rtype: List[List[int]] + """ + + intervals.sort(key=lambda x: x[0]) + + # Go throught the things and merge + newIntervals = [intervals[0]] + for i in range(len(intervals) - 1): + lastIndex = len(newIntervals) - 1 + + start = newIntervals[lastIndex][0] + end = newIntervals[lastIndex][1] + nextStart = intervals[i + 1][0] + nextEnd = intervals[i + 1][1] + + smallestStart = min(start, nextStart) + biggestEnd = max(end, nextEnd) + + if end >= nextStart: + newIntervals[lastIndex] = [smallestStart, biggestEnd] + else: + newIntervals.append(intervals[i + 1]) + return newIntervals \ No newline at end of file