-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMerge_intervals.py
More file actions
33 lines (25 loc) · 932 Bytes
/
Copy pathMerge_intervals.py
File metadata and controls
33 lines (25 loc) · 932 Bytes
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
def merge(intervals):
list_2 = []
result = []
if len(intervals) == 1:
return intervals
intervals.sort()
for i in range(intervals[0][0], intervals[0][1] + 1):
list_2.append(i)
length = len(intervals)
for j in range(1, length):
if (intervals[j][0] in list_2) or (intervals[j][1] in list_2):
for k in range(intervals[j][0], intervals[j][1] + 1):
list_2.append(k)
else:
result.append([min(list_2),max(list_2)])
list_2 = []
for k in range(intervals[j][0], intervals[j][1] + 1):
list_2.append(k)
listt = [min(list_2), max(list_2)]
result.insert(0, listt)
return result
intervals = [[2,3],[2,2],[3,3],[1,3],[5,7],[2,2],[4,6]]
output = merge(intervals))
print(output)
#output = [[4,7],[1,3]]