Cho danh sách các khoảng, mỗi khoảng dạng [start, end] (bao gồm cả đầu và cuối). Tìm giao điểm của tất cả các khoảng, tức khoảng nằm trong tất cả các khoảng cho trước.
Ví dụ, [[10, 110], [20, 60], [25, 75]], đầu ra [25, 60].
Các bước giải quyết:
start, end:= khoảng sau khi lấy ra phần tử cuối củaintervals.- Trong khi
intervalskhông rỗng:start_temp, end_temp:= khoảng tiếp theo lấy ra.start = max(start, start_temp).end = min(end, end_temp).
- Trả về khoảng
[start, end].
Ví dụ minh họa
class Solution:
def solve(self, intervals):
start, end = intervals.pop()
while intervals:
start_temp, end_temp = intervals.pop()
start = max(start, start_temp)
end = min(end, end_temp)
return [start, end]
ob = Solution()
intervals = [[10, 110], [20, 60], [25, 75]]
print(ob.solve(intervals))
Đầu vào
[[10, 110], [20, 60], [25, 75]]
Đầu ra
[25, 60]