合併和插入區間

2021-10-08 04:44:20 字數 1786 閱讀 9115

合併區間

給出乙個區間的集合,請合併所有重疊的區間。

示例 1:

輸入: [[1,3],[2,6],[8,10],[15,18]]

輸出: [[1,6],[8,10],[15,18]]

解釋: 區間 [1,3] 和 [2,6] 重疊, 將它們合併為 [1,6].

示例 2:

輸入: [[1,4],[4,5]]

輸出: [[1,5]]

解釋: 區間 [1,4] 和 [4,5] 可被視為重疊區間。

class

solution

:def

merge

(self, nums):if

len(nums)

<=1:

return nums

nums.sort(key=

lambda x:x[0]

) 0]

)for i in

range(1

,len

(nums)):

if res[-1

][1]

>= nums[i][0

]:res[-1

]=[min

(res[-1

][0]

, nums[i][0

]),max

(res[-1

][0]

, nums[i][1

])]if res[-1

][1]

< nums[i][0

]:)return res

給出乙個無重疊的 ,按照區間起始端點排序的區間列表。

在列表中插入乙個新的區間,你需要確保列表中的區間仍然有序且不重疊(如果有必要的話,可以合併區間)。

示例 1:

輸入: intervals = [[1,3],[6,9]], newinterval = [2,5]

輸出: [[1,5],[6,9]]

示例 2:

輸入: intervals = [[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] 重疊。

#### 雖然這是乙個偷懶的辦法,效果還是很不錯的哦

### 時間複雜度 95%

### 空間複雜度 100%

class

solution

:def

merge

(self, nums, aim)

:

iflen

(nums)

<=1:

return nums

nums.sort(key=

lambda x:x[0]

) 0]

)for i in

range(1

,len

(nums)):

if res[-1

][1]

>= nums[i][0

]:res[-1

]=[min

(res[-1

][0]

, nums[i][0

]),max

(res[-1

][0]

, nums[i][1

])]if res[-1

][1]

< nums[i][0

]:)return res

56 57 合併區間 插入區間

給出乙個區間的集合,請合併所有重疊的區間。直接對區間起點進行排序,然後遍歷,判斷當前遍歷區間的起點是否在前一區間內,在的話,更新前一區間的終點為兩者終點最大值,不在的話直接將當前區間插入。class solution sort intervals.begin intervals.end const ...

Python合併和拆分excel

當前目錄 og dir cwd origin 存放待合併的excel og ls os.listdir og dir 所有excel名稱 cb name combine.xlsx 合併後的檔名 合併 放置待拆分的excel 限1個 fname b dir os.listdir b dir 0 待拆分...

列表的合併和排列

list1 1 2,3 list2 4 5,6 for i in list1 先遍歷列表一中的元素 分別將list1中的元素加在list2列表的後方 print list2 4 5,6 1,2 3 1.2 extend函式 list1 1 2,3 list2 4 5,6 list1.extend l...