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