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

有重复项数字的全排列

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以后去重,并排序

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

实习算法题

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务