32.2 leetcode - 有重复数据的全排列
来源:互联网 发布:局域网远程软件 编辑:程序博客网 时间:2024/06/05 04:34
参考网址:http://blog.csdn.net/morewindows/article/details/7370155/
去重规则:去重的全排列就是从第一个数字起每个数分别与它后面非重复出现的数字交换
#!/usr/bin/python# -*- coding: utf-8 -*-'''Permutations,可能有重复数据的全排列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], [2,1,1]]'''class Solution(object): def permuteUnique(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ length = len(nums) if length == 0: return [] ret = [] self.__permuteUnique(nums,0,length,ret) return ret def __permuteUnique(self,nums,start,length,ret): if start == length - 1: ret.append(list(nums)) return for index in range(start,length): if nums[index] in nums[start:index]:#从start 到 index - 1的数据都与start交换过,如果第 index 的数据与前面start 到index - 1中的数据有重复,那么不用交换了 continue tmp = nums[start] nums[start],nums[index] = nums[index],tmp self.__permuteUnique(nums,start + 1,length,ret) tmp = nums[start] nums[start],nums[index] = nums[index],tmpif __name__ == "__main__": s = Solution() print s.permuteUnique([1,2,2,2])
0 0
- 32.2 leetcode - 有重复数据的全排列
- 32.1 leetcode - 没有重复数据的全排列
- 有重复全排列
- 每天一道LeetCode-----获取无重复项/有重复项序列的全排列
- 有重复元素的全排列
- 有重复元素的全排列
- 有重复元素的全排列问题
- 有重复元素的全排列问题
- 有重复元素的全排列问题
- 有重复元素的全排列
- 有重复元素的全排列问题
- DFS有重复数字的全排列
- 求不重复数据的全排列
- 如何得到有重复元素的不重复全排列
- poj1731 有重复全排列
- 有重复字母的全排列的java程序
- 求有重复数字的全排列算法。
- 【基础算法】有重复元素的全排列问题
- 终于加入了CSDN
- EOJ 2253 深度优先搜索
- 一次摄像头的任务 - 1
- swift之mutating关键字
- IP分片浅析
- 32.2 leetcode - 有重复数据的全排列
- poj 3006 Dirichlet's Theorem on Arithmetic Progressions
- 架构设计:系统存储(7)——MySQL数据库性能优化(3)
- 如何成为高手
- xXx图片助手
- centos时间不同步的解决方法(centos时间同步)
- 走肾的约炮之旅
- OpenGL图形渲染管线、VBO、VAO、EBO概念及用例
- 分治