Permutations II
Permutations II
Given a list of numbers with duplicate number in it. Find all unique permutations.
解决方案:可以利用一个访问数组,来控制元素是否访问过,同时需要在退出的条件中,判断是否有重复的值。
class Solution:
"""
@param nums: A list of integers.
@return: A list of unique permutations.
"""
def permuteUnique(self, nums):
# write your code here
isVisited = [False for i in range(len(nums))]
if nums == None:
return []
result = []
self.dfs(nums, result, [], isVisited)
return result
def dfs(self, nums, result, current, isVisited):
if len(nums) == len(current):
if current not in result:
result.append(list(current))
return
for i in range(len(nums)):
if isVisited[i] == False:
isVisited[i] = True
current.append(nums[i])
self.dfs(nums, result, current, isVisited)
isVisited[i] = False
del current[-1]Last updated
Was this helpful?