解題思路 leetcode第七十七題 組合

2021-10-24 17:32:16 字數 893 閱讀 9751

題目描述:

給定兩個整數 n 和 k,返回 1 … n 中所有可能的 k 個數的組合。

示例:輸入: n = 4, k = 2

輸出:[

[2,4],

[3,4],

[2,3],

[1,2],

[1,3],

[1,4],

]

解題思路:本題利用遞迴方法解題,遞迴引數包含t,res,solution。其中t代表遞迴內遍歷的起始位置,res儲存最後的結果列表,solution儲存當前子結果。遞迴函式內,首先判斷子結果是否長度為k,若為k,則說明當前子結果滿足條件,則將子結果新增進res內,然後退出當前遞迴函式。然後從起始位置t開始遍歷n,每次遍歷將當前元素新增進solution內,然後進入遞迴函式,從函式內出來時,將solution最後乙個元素丟擲,然後遍歷下乙個元素。**如下:
class

solution

:def

combine

(self, n:

int, k:

int)

-> list[list[

int]]:

res =

defrecall

(t, res, solution):if

len(solution)

== k::]

)return

for i in

range

(t, n+1)

: recall(i+

1, res, solution)

solution.pop(

) recall(

1, res,

)return res

提交後,通過。

解題思路 leetcode第七十八題 子集

題目描述 給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 本題與77題十分相似,只是將77的搜尋固定長度改為了不定長度,因此本題採用與77題同樣的解法,主體...

解題思路 leetcode第七十一題 簡化路徑

題目描述 以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs ...

解題思路 leetcode第七十二題 編輯距離

題目描述 給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h...