打卡题目:leetcode第47题,全排列Ⅱ
    相似题目:46
    image.png


    【代码】

    1. class Solution:
    2. def permuteUnique(self, nums: List[int]) -> List[List[int]]:
    3. def dfs(nums, size, depth, path, used, res):
    4. if depth == size:
    5. res.append(path.copy())
    6. return
    7. for i in range(size):
    8. if not used[i]:
    9. if i > 0 and nums[i] == nums[i-1] and not used[i-1]:
    10. continue
    11. used[i] = True
    12. path.append(nums[i])
    13. dfs(nums, size, depth+1, path, used, res)
    14. used[i] = False
    15. path.pop()
    16. size = len(nums)
    17. if size == 0:
    18. return []
    19. nums.sort()
    20. used = [False] * len(nums)
    21. res = []
    22. dfs(nums, size, 0, [], used, res)
    23. return res