###### tags: `LeetCode`,`Python3`,`Medium` # 57. Insert Interval ### **題目連結:** [**Insert Interval**](https://leetcode.com/problems/insert-interval/description/?envType=daily-question&envId=2024-03-17) ### **解題方向** * intervals[i]的 開始 時間小於 newInterval的 結束 時間 * intervals[i]的 結束 時間大於 newInterval 的 開始 時間 * 首先先找出intervals結束時間早於 newInterval的開始時間,將這些不重疊的區間先加入 * 當第一個結束時間大於 newInterval的開始時間發現時,這時判斷是否有重疊,如果有的話開始進行合併,將intervals 中開始時間早於 newInterval結束時間合併 * 最後把剩下的區段加入 ### **完整程式碼** ```Python= class Solution: def insert(self, intervals: List[List[int]], newInterval: List[int]) -> List[List[int]]: merged=[] i=0 while i<len(intervals) and intervals[i][1]<newInterval[0]: merged.append(intervals[i]) i+=1 while i<len(intervals) and intervals[i][0]<=newInterval[1]: newInterval=[min(newInterval[0],intervals[i][0]),max(newInterval[1],intervals[i][1])] i+=1 merged.append(newInterval) while i<len(intervals): merged.append(intervals[i]) i+=1 return merged ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up