按照第乙個數字進行排序
排序後,新增變數new_list儲存遍歷結果,初始值為排序後的第一對數字
遍歷從index = 1開始,每次遍歷乙個新數字對,只需要判斷第乙個數字,是否在new_list最後乙個數字對中間
如果在,則合併兩對數字
如果不在,插入新數字對
class solution:
def merge(self, intervals: list[list[int]]) -> list[list[int]]:
def get_first(a):
return a[0]
if len(intervals) == 0:
return
intervals.sort(key = get_first)
new_list = [intervals[0]]
for index in range(1, len(intervals)):
if new_list[-1][0] <= intervals[index][0] <= new_list[-1][1]:
new_list[-1] = [min(new_list[-1][0], intervals[index][0]), max(new_list[-1][1], intervals[index][1])]
else:
return new_list
leetcode系列 演算法 中等 顏色分類
雙指標,乙個指標初始化時指向陣列頭,乙個指標指向陣列尾,具體流程如下 變數 left 左指標,儲存連續0的下乙個位置 right 右指標,儲存連續2的前乙個位置 index 遍歷時的索引 nums 原始陣列 流程 使用index從前向後nums 如果遇到0,則交換nums index 和nums l...
leetcode系列 演算法 中等 螺旋矩陣
記錄當前的迴圈次數,每迴圈一次,修改一下當前的狀態 根據當前的不同狀態,進行不同的處理遍歷方式,並將已處理的數字刪除 這樣迴圈完成一圈之後,內圈的迴圈方式,和外圈就相同了 持續迴圈到元素內的所有數字全部刪除 我設定的狀態列表如下 0 獲取當前第一行數字 1 獲取所有行的最後乙個數字 2 按照倒序獲取...
leetcode系列 演算法 中等 全排列
回溯 剪枝,大概框架為 def function if 滿足插入結果條件 插入結果集 return elif 不滿足繼續遍歷條件 比如次數等要求達到上限 return for 感覺好多回溯的題,是時候總結一下回溯的題了 class solution def permute self,nums lis...