題目描述:
給定一組不含重復元素的整數數組?nums,返回該數組所有可能的子集(冪集)。
說明:解集不能包含重復的子集。
示例:
輸入: nums = [1,2,3]
輸出:
[
[3],
? [1],
? [2],
? [1,2,3],
? [1,3],
? [2,3],
? [1,2],
? []
]
SOLUTION1:迭代法
比較常規的迭代法思路,循環nums數組,每次訪問其中元素,將其轉化為數組并加到result二維數組當中。
CODE:
class Solution:
def subsets(self,nums):
'''
nums:list[int]
return:list[list[int]]
'''
if len(nums) == 0:
return [[]]
result = [[]]
for i in nums:
result = result + [[i] + num for num in result]
return result
SOLUTION2:遞歸法
CODE:
class Solution:
def subsets(self,nums):
if len(nums) == 0:
return [[]]
result = []
def helper(i,tmp):
result.append(tmp)
for j in range(i,len(nums)):
helper(j+1,tmp+nums[j])
helper(0,[])
return result
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

