首页 > 其他 > 详细

leetcode 每日一题 47. 全排列 II

时间:2020-05-29 14:30:46      阅读:50      评论:0      收藏:0      [点我收藏+]

技术分享图片

回溯法

思路:

参考46.全排列,在回溯过程中通过判断数字是否已经用过进行去重。

代码:

class Solution:
    def permuteUnique(self, nums: List[int]) -> List[List[int]]:
        def pathProcess(first,usedList:List[int]):
            if  first==n:
                res.append(nums[:])
            for i in range(first,n):
                if  i != first and nums[i] in usedList:
                    continue 
                nums[first],nums[i] = nums[i],nums[first]
                pathProcess(first+1,[])
                nums[first],nums[i] = nums[i],nums[first]
                usedList.append(nums[i])
        n = len(nums)
        res = []
        pathProcess(0,[])
        return res

 

leetcode 每日一题 47. 全排列 II

原文:https://www.cnblogs.com/nilhxzcode/p/12986995.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!