Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 교차 간격 찾기

<시간/>

각 간격이 [시작, 종료]와 같은 간격 목록이 있다고 가정합니다. 이는 간격(포함)의 시작 및 종료 시간을 나타냅니다. 이들의 교차점, 즉 주어진 모든 간격 내에 있는 간격을 찾아야 합니다.

따라서 입력이 [[10, 110],[20, 60],[25, 75]]와 같으면 출력은 [25, 60]

가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • start, end :=간격 목록에서 마지막 요소를 삭제한 후 간격
  • 간격이 비어 있지 않은 동안 수행
    • start_temp, end_temp :=간격 목록에서 마지막 요소를 삭제한 후 간격
    • start :=시작의 최대값, start_temp
    • end :=end_temp의 최소값
  • 간격 반환 [시작, 종료]

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

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))

입력

[[10, 110],[20, 60],[25, 75]]

출력

[25, 60]