47. 全排列 II

给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。

示例 1:

输入:nums = [1,1,2]

输出:

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

示例 2:

输入:nums = [1,2,3]

输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

提示:

1 <= nums.length <= 8

-10 <= nums[i] <= 10

题出的跟白给一样,上一个写出来后稍加修改就行了

python 复制代码
class Solution:
    def __init__(self):
        self.recode=  {}

    def merge(self,lis,target):
        res = set()
        for i in lis:
            for j in range(len(i)+1):
                new_i = i[::]
                new_i.insert(j,target)
                res.add(tuple(new_i))
        return [list(i) for i in res]

        


    def permuteUnique(self, nums: List[int]) -> List[List[int]]:
        if len(nums) ==1:
            return [nums]
        res = []
        for ind,v in enumerate(nums[1:],1):
            key = tuple(nums[:ind])
            tp = self.recode.get(key)
            if not tp:
                tp = self.permuteUnique(nums[:ind])
            res = self.merge(tp,v)
        self.recode[tuple(nums)] = res
        return res
        
相关推荐
hqwest18 小时前
码上通QT实战12--监控页面04-绘制6个灯珠及开关
开发语言·qt·qpainter·qt事件·stackedwidget
i橡皮擦18 小时前
TheIsle恐龙岛读取游戏基址做插件(C#语言)
开发语言·游戏·c#·恐龙岛·theisle
cnxy18818 小时前
Python爬虫进阶:反爬虫策略与Selenium自动化完整指南
爬虫·python·selenium
bing.shao19 小时前
golang 做AI任务执行
开发语言·人工智能·golang
青莲84319 小时前
RecyclerView 完全指南
android·前端·面试
青莲84319 小时前
Android WebView 混合开发完整指南
android·前端·面试
用户83562907805119 小时前
Python 实现 Excel 条件格式自动化
后端·python
源代码•宸19 小时前
Golang语法进阶(协程池、反射)
开发语言·经验分享·后端·算法·golang·反射·协程池
深蓝电商API20 小时前
Scrapy管道Pipeline深度解析:多方式数据持久化
爬虫·python·scrapy
噎住佩奇20 小时前
(Win11系统)搭建Python爬虫环境
爬虫·python