美文网首页
47. 全排列 II

47. 全排列 II

作者: 周英杰Anita | 来源:发表于2020-06-22 13:26 被阅读0次

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

    示例:

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

    思路

    同层去重,通过集合实现,用来记录同层中已经选择过的数字。
    

    python3解法

    class Solution:
        def permuteUnique(self, nums: List[int]) -> List[List[int]]:
            def backtrack(nums, combination):
                if not nums:
                    ans.append(combination)
                visitnums = set()
                for i in range(len(nums)):
                    if nums[i] in visitnums:
                        continue
                    backtrack(nums[:i] + nums[i + 1:], combination + [nums[i]])
                    visitnums.add(nums[i])
            ans = []
            backtrack(nums, [])
            return ans
    

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/permutations-ii
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:47. 全排列 II

          本文链接:https://www.haomeiwen.com/subject/jbexfktx.html