[리트코드] 0057. 삽입 간격

Python, C++, JavaScript, SQL 및 TypeScript의 다양한 LeetCode 솔루션을 살펴보세요. 여러 프로그래밍 언어로 인터뷰 준비, 학습 및 코드 연습에 적합합니다. Github 레포 링크

중간

 


겹치지 않는 간격의 배열이 제공됩니다. 간격 어디 간격[i] = [시작 i , 끝 i ] 시작과 끝을 상징하는 나는  간격과 간격 오름차순으로 정렬됩니다. 내가 시작해. 간격도 주어집니다. newInterval = [시작, 끝] 이는 또 다른 간격의 시작과 끝을 나타냅니다.

끼워 넣다 새로운 간격 ~ 안으로 간격 그렇게 간격 여전히 오름차순으로 정렬되어 있습니다. 내가 시작해 그리고 간격 여전히 겹치는 간격이 없습니다(필요한 경우 겹치는 간격 병합).

반품 간격 삽입 후.

메모 수정할 필요가 없다는 것 간격 제자리에서 새 배열을 만들고 반환할 수 있습니다.

예시 1:

입력: 간격 = [[1,3],[6,9]], newInterval = [2,5]
산출: [[1,5],[6,9]]

예 2:

입력: 간격 = [[1,2],[3,5],[6,7],[8,10],[12,16]], newInterval = [4,8]
산출: [[1,2],[3,10],[12,16]]
설명: 새로운 간격 [4,8]이 [3,5],[6,7],[8,10]과 겹치기 때문입니다.

제약:

  • 0 <= 간격.길이 <= 10 4
  • 간격[i].길이 == 2
  • 0 <= 시작 i <= 끝 i <= 10 5
  • 간격 로 정렬됩니다 내가 시작해 ~에 오름차순 주문하다.
  • newInterval.length == 2
  • 0 <= 시작 <= 끝 <= 10 5

파이썬

				
					# 시간 복잡도: O(n) # 공간 복잡도: O(n) 입력 가져오기 목록 클래스 솔루션: def insert(self, 간격: List[List[int]], newInterval: List[int]) -> List[List [int]]: 결과 = [] i = 0 while i < len(intervals) 및 newInterval[0] > 간격[i][1]: result.append(intervals[i]) i += 1 while i < len (간격) 및 newInterval[1] >= 간격[i][0]: newInterval[0] = min(intervals[i][0], newInterval[0]) newInterval[1] = max(intervals[i][ 1], newInterval[1]) i += 1 result.append(newInterval) while i < len(intervals): result.append(intervals[i]) i += 1 반환 결과 간격 = [[1, 2], [3, 5], [6, 7], [8, 10], [12, 16]] newInterval = [4, 8] print(Solution().insert(intervals, newInterval))
				
			
ko_KR한국어