"""
设计:Python程序设计
作者:初学者
日期:2022年 03月 22日
"""
# 例100 带重复元素的排列
# 1.问题描述
# 给出一个含有重复数字的列表,找出列表所有的排序
# 2.问题示例
# 输入[1,1],输出[[1,1]];
# 输入[1,2,2],输出[[1,2,2],[2,1,2],[2,2,1]]
# 3.代码实现
class Solution:
# 参数nums:整数数组
# 返回值:唯一排列的列表
def permutation(self, nums):
def _permute(result, temp, nums):
if nums == []:
result += [temp]
else:
for i in range(len(nums)):
if i > 0 and nums[i] == nums[i - 1]:
continue
_permute(result, temp + [nums[i]], nums[:i] + nums[i + 1:])
if nums is None:
return []
if len(nums) == 0:
return [[]]
result = []
_permute(result, [], sorted(nums))
return result
# 主函数
if __name__ == '__main__':
s = Solution()
nums = [1, 2, 2]
result = s.permutation(nums)
print("输入:", nums)
print("输出:", result, end=" ")
带重复元素的排列
于 2022-03-22 20:11:44 首次发布