題目描述:
給定一組不含重復元素的整數數組?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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
