给定一个
可包含重复数字
的序列nums
,按任意顺序返回所有不重复的全排列。
示例 1:
输入:nums = [1,1,2]
输出:
[[1,1,2],
[1,2,1],
[2,1,1]]
示例 2:
输入:nums = [1,2,3]
输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
提示:
- 1 <= nums.length <= 8
- -10 <= nums[i] <= 10
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/permutations-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解1 2021/9/7 O(?)
from itertools import permutations
def permuteUnique(nums: list) -> list:
res=[]
for p in permutations(nums):
u=list(p)
if u not in res:
res.append(list(p))
return res
if __name__ == '__main__':
print(permuteUnique([1,1,2]))
print(permuteUnique([1,2,3]))
print(permuteUnique([1]))
print(permuteUnique([1,1]))