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

2021-10-25 00:20:41 字數 883 閱讀 2723

題目描述:

給定一組不含重複元素的整數陣列 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...