-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path57_insert-interval.py
34 lines (22 loc) · 995 Bytes
/
57_insert-interval.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# https://leetcode.com/problems/insert-interval/
class Solution:
def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]:
l_ivl = len(intervals)
r_ivl = 0
ivl_idx = 0
s_new, e_new = newInterval
while ivl_idx < len(intervals):
s, e = intervals[ivl_idx]
if l_ivl == len(intervals):
if s_new <= e:
l_ivl = ivl_idx
if e_new >= s:
r_ivl = ivl_idx + 1
ivl_idx += 1
if l_ivl >= len(intervals):
return intervals + [newInterval]
if r_ivl <= 0:
return [newInterval] + intervals
if l_ivl == r_ivl:
return intervals[:l_ivl] + [newInterval] + intervals[l_ivl:]
return intervals[:l_ivl] + [[min(intervals[l_ivl][0], s_new), max(intervals[r_ivl-1][1], e_new)]] + intervals[r_ivl:]