aboutsummaryrefslogtreecommitdiff
path: root/insert_interval.py
diff options
context:
space:
mode:
Diffstat (limited to 'insert_interval.py')
-rw-r--r--insert_interval.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/insert_interval.py b/insert_interval.py
new file mode 100644
index 0000000..442b223
--- /dev/null
+++ b/insert_interval.py
@@ -0,0 +1,31 @@
+# 57. Insert Interval
+
+
+class Solution(object):
+ def insert(self, intervals, newInterval):
+ """
+ :type intervals: List[List[int]]
+ :type newInterval: List[int]
+ :rtype: List[List[int]]
+ """
+ ans, i = [], -1
+ for i, (x, y) in enumerate(intervals):
+ if y < newInterval[0]:
+ ans.append([x, y])
+ elif newInterval[1] < x:
+ i -= 1
+ break
+ else:
+ newInterval[0] = min(newInterval[0], x)
+ newInterval[1] = max(newInterval[1], y)
+ return ans + [newInterval] + intervals[i + 1 :]
+
+
+if __name__ == "__main__":
+ obj = Solution()
+ print(obj.insert(intervals=[[1, 3], [6, 9]], newInterval=[2, 5]))
+ print(
+ obj.insert(
+ intervals=[[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]], newInterval=[4, 8]
+ )
+ )