給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集(冪集)。
說明:解集不能包含重複的子集。
1.暴力法
關鍵for cur in res:
res += cur + [num[i]]
2.dfs
深度優先含有每個元素的子集
關鍵:多層遞迴
class solution:
def subsets
(self, nums: list[
int]
)-> list[list[
int]]:
res =
cur =
self.
dfs(nums,res,cur)
return res
def dfs
(self,nums,res,cur)
: res.
(cur)
for i in range
(len
(nums)):
self.
dfs(nums[i+1:
],res,
[nums[i]
]+cur)
LeetCode 子集(回溯法)
給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 說明 解集不能包含重複的子集。示例 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 思路分析 對於這種選取元素的題,一般回溯法都能輕鬆決解。首先對子集的長度進行窮舉,每次回溯法只尋找相等長度的...
回溯法 LeetCode 子集和子集II
子集ii 給定一組不含重複元素的整數陣列 nums,返回該陣列所有可能的子集 冪集 輸入 nums 1,2,3 輸出 3 1 2 1,2,3 1,3 2,3 1,2 利用 回溯法子集樹模板,調整引數傳入,並且無約束條件即無衝突。class solution def init self self.da...
Leetcode 括號生成 暴力法
個人學習記錄,不做它用。數字 n 代表生成括號的對數,請你設計乙個函式,用於能夠生成所有可能的並且有效的括號組合。示例 輸入 n 3 輸出 思路 首先找出所有的以左括號開頭,右括號結尾的不重複的序列,形成序列集s。找出s中所有有效的序列並輸出。序列集s的形成方法 為了依次輸出所有不重複的序列,這裡考...