LeetCode:78. 子集90. 子集 II
Posted 南岸青栀*
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode:78. 子集90. 子集 II相关的知识,希望对你有一定的参考价值。
78. 子集
法1:迭代法
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
#迭代法
res = [[]]
for i in nums:
res = res + [[i] + num for num in res]
return res
法2:递归法
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
#递归法
res = []
def rescursion(i,tmp):
res.append(tmp)
print(res)
for j in range(i,len(nums)):
rescursion(j+1,tmp + [nums[j]])
rescursion(0,[])
return res
90. 子集 II
法1:迭代法
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
res = [[]]
nums.sort()
for i in nums:
for num in res:
print(res)
if [i] + num not in res:
res = res + [[i] + num]
return res
法2:递归法
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
res = []
nums.sort()
def rescursion(i,tmp):
if tmp not in res:
res.append(tmp)
for j in range(i,len(nums)):
rescursion(j+1,tmp + [nums[j]])
rescursion(0,[])
return res
以上是关于LeetCode:78. 子集90. 子集 II的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 90. 子集 II(Subsets II)