Lintcode 16.带重复元素的排列 python
2018-03-02 17:06
302 查看
直接在第15题的基础上修改,增加排序后去重
class Solution:
"""
@param: : A list of integers
@return: A list of unique permutations
"""
def permuteUnique(self, nums):
# write your code here
begin = 0
end = len(nums)
result = []
if end == 0:
return [[]]
self.permute_temp(begin,end,nums,result)
result.sort() #排序后去重
n = len(result)
i = 0
while i < len(result) - 1:
if result[i] == result[i+1]:
del result[i]
else:
i += 1
return result
def permute_temp(self,begin,end,nums,result):
if begin == end:
k = nums[:]
result.append(k)
else:
for i in range(begin,end):
temp = nums[begin]
nums[begin] = nums[i]
nums[i] = temp
self.permute_temp(begin + 1,end,nums,result)
temp = nums[begin]
nums[begin] = nums[i]
nums[i] = temp
class Solution:
"""
@param: : A list of integers
@return: A list of unique permutations
"""
def permuteUnique(self, nums):
# write your code here
begin = 0
end = len(nums)
result = []
if end == 0:
return [[]]
self.permute_temp(begin,end,nums,result)
result.sort() #排序后去重
n = len(result)
i = 0
while i < len(result) - 1:
if result[i] == result[i+1]:
del result[i]
else:
i += 1
return result
def permute_temp(self,begin,end,nums,result):
if begin == end:
k = nums[:]
result.append(k)
else:
for i in range(begin,end):
temp = nums[begin]
nums[begin] = nums[i]
nums[i] = temp
self.permute_temp(begin + 1,end,nums,result)
temp = nums[begin]
nums[begin] = nums[i]
nums[i] = temp
相关文章推荐
- lintcode&九章算法——Lintcode No.16. 带重复元素的排列 ? 待解决
- LintCode-----16.带重复的全排列
- LintCode Python 101. 删除排序数组中的重复数字 II
- LintCode—删除排序链表中的重复元素(112)
- python字典分别按照key和value升序或者降序排列--以给定一个含有重复元素的数组list,按照其出现次数大小降序输出
- lintcode&九章算法——101. 删除有序数组里的重复元素 II ? 待解决
- lintcode 中等题:permutations II 重复数据的全排列
- lintcode&九章算法——100. 删除有序数组里的重复元素 ? 待解决
- 16 - 带重复元素的排列
- Lintcode 容易 python 判断字符串是否没有重复字符
- lintcode-16-带重复元素的排列
- lintcode——删除排序链表中的重复元素
- LintCode-删除排序链表中的重复元素
- LintCode : 删除链表中的重复元素
- LintCode_112_删除排序链表中重复的元素
- LintCode Python 第k大元素
- Lintcode112.删除排序链表中的重复元素
- lintcode-带重复元素的排列 -16
- lintcode(16)带重复元素的排列
- LintCode-----17.带重复元素的子集