題目描述:
給定兩個整數 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...