博客域名:
http://www.xnerv.wang
原题页面: https://oj.leetcode.com/problems/permutations-ii/
题目类型:
难度评价:★
本文地址: http://blog.csdn.net/nerv3x3/article/details/37993703
原题页面: https://oj.leetcode.com/problems/permutations-ii/
题目类型:
难度评价:★
本文地址: http://blog.csdn.net/nerv3x3/article/details/37993703
Given a collection of numbers that might contain duplicates, return all possible unique permutations.
For example,
[1,1,2]
have the following unique permutations:
[1,1,2]
, [1,2,1]
, and [2,1,1]
.
class Solution:
def doPermuteUnique(self, num_list):
if 1 == len(num_list):
return [ num_list ]
res_list = [ ]
for i in range(0, len(num_list)):
if i > 0 and num_list[0] == num_list[i]:
continue
tmp = num_list[0]
num_list[0] = num_list[i]
num_list[i] = tmp
sub_res_list = self.doPermuteUnique(num_list[1:])
list_head = [ num_list[0] ]
new_list = [ list_head + list for list in sub_res_list]
res_list.extend(new_list)
return res_list
# @param num, a list of integer
# @return a list of lists of integers
def permuteUnique(self, num):
num.sort()
return self.doPermuteUnique(num)