80 leetcode - Subsets II
2017-01-09 10:57
330 查看
#!/usr/bin/python # -*- coding: utf-8 -*- ''' Subsets II Given a collection of integers that might contain duplicates, nums, return all possible subsets. Note: The solution set must not contain duplicate subsets. ''' class Solution(object): def subsetsWithDup(self, nums): """ :type nums: List[int] :rtype: List[List[int]] """ length = len(nums) if length == 0: return [] nums.sort() return self.__subsets(nums,0,length,[],[],'',False) def __subsets(self,a,start,length,result,ret,last_word,used_flag): if start == length: ret.append(list(result)) else: #去重,记录上一个元素,如果与上一次元素相同,并且上一次元素没有使用,则本次也不使用 #print last_word,a[start] if not (last_word == a[start] and used_flag == False): last_word = a[start] result.append(last_word) self.__subsets(a,start + 1,length,result,ret,last_word,True) result.pop() self.__subsets(a,start + 1,length,result,ret,last_word,False) return ret if __name__ == "__main__": s = Solution() #print s.subsetsWithDup([1,2,2,2]) print s.subsetsWithDup([0]
相关文章推荐
- LeetCode --- 90. Subsets II
- LeetCode (Subsets II)
- leetcode80 Remove Duplicates from Sorted Array II
- [leetcode 80, Medium] Remove Duplicates from Sorted Array II
- [LeetCode] Subsets II
- [LeetCode] Subsets II
- 【leetcode】Subsets II (middle) ☆
- [LeetCode]90 Subsets II
- leetcode90 Subsets II
- LeetCode 90. Subsets II
- [LeetCode] 90. Subsets II
- [LeetCode] Subsets II
- LeetCode ——Subsets II
- Leetcode 80]Remove Duplicates from Sorted Array II
- Subsets II -- LeetCode
- [LeetCode] Subsets II
- Leetcode#90 Subsets II
- 【LeetCode with Python】 Subsets II
- leetcode || 80、Remove Duplicates from Sorted Array II
- LeetCode 2015.7.26 116,108,96,94,35,80,77,74,73