前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【python-leetcode90-子集】子集Ⅱ

【python-leetcode90-子集】子集Ⅱ

作者头像
西西嘛呦
发布于 2020-08-26 02:18:28
发布于 2020-08-26 02:18:28
74100
代码可运行
举报
运行总次数:0
代码可运行

给定一个可能包含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。

说明:解集不能包含重复的子集。

示例:

输入: 1,2,2

输出:

[

2,

1,

1,2,2,

2,2,

1,2,

[]

]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Solution:
    def subsetsWithDup(self, nums: List[int]) -> List[List[int]]:
        global res
        nums.sort()
        res=[]
        tmp=[]
        self.helper(0,tmp,nums)
        return res
    def helper(self,i,tmp,nums):
        res.append(tmp)
        for j in range(i,len(nums)):
            if j>i and nums[j] == nums[j-1]:
                continue
            self.helper(j+1,tmp+[nums[j]],nums)

结果:

[[],1,1,2,1,2,2,2,2,2]

和子集那题很类似:

https://cloud.tencent.com/developer/article/1686190

这里有重复的数字,核心就是标红的地方。

比如nums=2,1,2,先对其排序为1,2,2

那么比如现在有1,2就只需要加入一次即可:1,2。也就是说1,2,这里2就不能来自接下来的2了,不然会重复。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-03-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验