题解 | #有重复项数字的全排列#

有重复项数字的全排列

https://www.nowcoder.com/practice/a43a2b986ef34843ac4fdd9159b69863

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num int整型一维数组 
# @return int整型二维数组
#
class Solution:
    def permuteUnique(self , num: List[int]) -> List[List[int]]:
        # write code here
        
        if len(num) == 1:
            return [num]
        
        a = num [0]

        result = []

        sub_results = self.permuteUnique(num[1:])

        l = len(sub_results)

        for i in range(l):
            result.append([a]+sub_results[i])
        
        for i in range(l):
            for j in range(1, len(num)):
                result.append(sub_results[i][0:j]+[a]+sub_results[i][j:])
        
        new_li=[]
        for i in result:
            if i not in new_li:
                new_li.append(i)
        # print(new_li)
        new_li.sort()
        return new_li

借鉴没有重复数字的思路,我们只需要在获得有重复list以后去重,并排序

#我的实习求职记录#
实习算法题题解 文章被收录于专栏

实习算法题

全部评论

相关推荐

程序员小假:人才
点赞 评论 收藏
分享
野猪不是猪🐗:现在的环境就是这样,供远大于求。 以前卡学历,现在最高学历不够卡了,还要卡第一学历。 还是不够筛,于是还要求得有实习、不能有gap等等... 可能这个岗位总共就一个hc,筛到最后还是有十几个人满足这些要求。他们都非常优秀,各方面都很棒。 那没办法了,看那个顺眼选哪个呗。 很残酷,也很现实
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务