leetcode-90 子集
leetcode-90 子集
题目描述:
给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。说明:解集不能包含重复的子集。
之前遇到过类似的题目,但是这次还是没有写出来。这次知道在for循环里面需要加入相等判断,但是在判断的时候出了问题,
我写的是 i>1,实际上是 i>index;
class Solution:
def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
def dfs(nums,index,pre,path):
res.append(path)
for i in range(index,len(nums)):
if i>index and nums[i] == nums[i-1]:
continue
dfs(nums,i+1,pre,path+[nums[i]])
res = []
nums.sort()
dfs(nums,0,"",[])
return res