สมมติว่ามีรายการ intervals ต้องการหา union ของพวกเขาเรียงตามลำดับ
ตัวอย่าง: inv = [[2,5],[4,10],[20,25]] ผลลัพธ์ [[2,10],[20,25]]
ขั้นตอนการแก้ปัญหา
- เรียง
intervals ans = []- วน
s, eในintervals:- ถ้า
ansและs <= ans[-1][1]:ans[-1][1] = max(ans[-1][1], e) - มิฉะนั้น: เพิ่ม
[s,e]เข้าans
- ถ้า
- คืน
ans
ตัวอย่างโค้ด
class Solution:
def solve(self, intervals):
intervals.sort()
ans = []
for s, e in intervals:
if ans and s <= ans[-1][1]:
ans[-1][1] = max(ans[-1][1], e)
else:
ans.append([s, e])
return ans
ob = Solution()
inv = [[2, 5], [4, 10], [20, 25]]
print(ob.solve(inv))
อินพุต
[[2, 5], [4, 10], [20, 25]]
เอาต์พุต
[[2, 10], [20, 25]]