題目描述:
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。
說明:解集不能包含重複的子集。
示例:輸入: nums = [1,2,3]
輸出:[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
]本題與77題十分相似,只是將77的搜尋固定長度改為了不定長度,因此本題採用與77題同樣的解法,主體採用77題的思路,只在最外層新增迴圈改變每一次搜尋的長度,每一次遍歷都將不同的長度當作目標值傳入遞迴函式。**如下:
class
solution
:def
subsets
(self, nums: list[
int])-
> list[list[
int]]:
res =
defrecall
(t, res, solution, target):if
len(solution)
== target::]
)return
for i in
range
(t,len
(nums)):
) recall(i+
1, res, solution, target)
solution.pop(
)for j in
range
(len
(nums)+1
):recall(
0, res,
, j)
return res
提交後,通過。 解題思路 leetcode第七十七題 組合
題目描述 給定兩個整數 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儲存最後的結果列表,sol...
解題思路 leetcode第七十一題 簡化路徑
題目描述 以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs ...
解題思路 leetcode第七十二題 編輯距離
題目描述 給你兩個單詞 word1 和 word2,請你計算出將 word1 轉換成 word2 所使用的最少運算元 你可以對乙個單詞進行如下三種操作 插入乙個字元 刪除乙個字元 替換乙個字元 示例 1 輸入 word1 horse word2 ros 輸出 3 解釋 horse rorse 將 h...