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

猜你喜欢

转载自www.cnblogs.com/curtisxiao/p/11280997.html