leetcode輸出子集暴力法與dfs

2021-10-10 09:03:17 字數 610 閱讀 2707

給定一組不含重複元素的整數陣列 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的形成方法 為了依次輸出所有不重複的序列,這裡考...