`
huntfor
  • 浏览: 201230 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

[leetcode]Subsets II

 
阅读更多

新博文地址:[leetcode]Subsets II

 

Subsets II

Given a collection of integers that might contain duplicates, S, return all possible subsets.

Note:
Elements in a subset must be in non-descending order.
The solution set must not contain duplicate subsets.
For example,
If S = [1,2,2], a solution is:

[
[2],
[1],
[1,2,2],
[2,2],
[1,2],
[]
]

 很典型的递归,与Subsets区别的是,这道题,s是包含重复元素的,其实好像木有太大影响,只需要用一个set集合在过滤掉重复的list即可。

	List<List<Integer>> result = new ArrayList<List<Integer>>();
	Set<List<Integer>> resultSet = new HashSet<List<Integer>>();
	public List<List<Integer>> subsetsWithDup(int[] num) {
		List<Integer> nil = new ArrayList<Integer>();
		result.add(nil);
		if(num == null || num.length == 0){
			return result;
		}
		Arrays.sort(num);
		List<Integer> list =new ArrayList<Integer>();
		for(int i = 0 ; i < num.length; i++){
			list.add(num[i]);
			getSubSet(num, i, list);
			list.remove(list.size() - 1);
		}
		return result;
	}
	
	private void getSubSet(int[] num,int n,List<Integer> list){
		if(n < num.length){
			if(!resultSet.contains(list)){
				List<Integer> copy = new ArrayList<Integer>(list);
				result.add(copy);
				resultSet.add(copy);
			}
		}
		
		for(int i = n + 1; i < num.length; i++){
			list.add(num[i]);
			getSubSet(num,i,list);
			list.remove(list.size() - 1);
		}
	}

 

分享到:
评论

相关推荐

    python-leetcode题解之090-Subsets-II

    python python_leetcode题解之090_Subsets_II

    js-leetcode题解之90-subsets-II.js

    javascript js_leetcode题解之90-subsets-II.js

    c语言-leetcode题解之0090-subsets-ii.zip

    c语言基础 c语言_leetcode题解之0090_subsets_ii.zip

    python-leetcode题解之078-Subsets

    python python_leetcode题解之078_Subsets

    c语言-leetcode题解之0078-subsets.zip

    c c语言_leetcode题解之0078_subsets.zip

    js-leetcode题解之78-subsets.js

    javascript js_leetcode题解之78-subsets.js

    java-leetcode题解之Partition to K Equal Sum Subsets.java

    java java_leetcode题解之Partition to K Equal Sum Subsets.java

    Leetcode部分解答(126题)

    10. **Subsets II .cpp** - 第90题“子集II”,要求找到一个集合的所有不重复子集,解冑通常使用递归或回溯法。 以上代码覆盖了算法设计中的多种重要思想,包括回溯法、动态规划、字符串处理、区间操作和深度/广度...

    Leetcode题目+解析+思路+答案.pdf

    - **Subsets**:找出所有可能的子集。 - **Permutation**:生成全排列。 6. **贪心(Greedy)**: - **Jump Game**:跳跃游戏,判断是否能到达数组末尾。 - **Gas Station**:寻找最短的加油路线。 - **Candy*...

    _leetcode-python.pdf

    - Subsets: 给定一组可能包含重复元素的整数数组,返回该数组所有可能的子集。 - Word Search: 给定一个m×n的二维字符网格board和一个单词(字符串)word,如果word存在于网格中,则返回true;否则,返回false。 - ...

    LeetCode leetcode部分题解答代码实现

    * Basic Calculator II:给定一个字符串,返回其计算结果。这个题目需要使用数学的思想,将字符串分解成更小的子字符串,并计算其结果。 LeetCode 中有很多关于数组、链表、树、动态规划、回溯算法、贪心算法、数学...

    leetcode-常见考题2.pdf

    - 在 Subsets 题目中,回溯算法用于找出集合的所有可能子集。 14. **递归与迭代**: - 递归是一种常见的编程技巧,它将问题分解为更小的问题,而迭代通常是递归的替代方案,使用循环结构代替递归结构。 - 在 ...

    javascript-leetcode面试题解递归与回溯问题之第90题子集II-题解.zip

    本篇内容主要聚焦于JavaScript解决LeetCode中的第90题——"子集II"(Subsets II)的递归与回溯算法。 子集II问题要求我们找到一个给定整数数组的所有不重复子序列,且这些子序列中包含至少两个连续的数字。这个题目...

    python-leetcode面试题解之第78题子集-题解.zip

    【Python LeetCode 面试题解之第78题 子集】 在LeetCode平台上的第78题,名为“Subsets”(子集),是...同时,也可以通过练习LeetCode上的其他相关题目,如“Subsets II”(子集II,考虑重复元素)来提升自己的能力。

    c++-c++编程基础之leetcode题解第78题子集.zip

    第78题"子集"(Subsets)是LeetCode中的一个经典问题,它涉及到深度优先搜索(DFS)或回溯算法的应用。在此,我们将深入探讨这个问题的解决方案以及相关的C++编程知识。 ### 问题描述: 给定一个没有重复元素的整数...

    leetcode写题闪退-LeetCode:leetcodeOJ

    leetcode写题闪退 #*的多少代表此题的有意思程度 有几题第一次写的时候思绪比较混乱: *****Regular Expression Matching 2014.10.29 对于Find Minimum in Rotated Sorted Array II 和 Find Minimum in Rotated ...

    javascript-leetcode面试题解递归与回溯问题之第78题子集-题解.zip

    LeetCode是一个广受欢迎的在线平台,它提供了许多编程题目,帮助开发者提升算法技能并准备求职面试。第78题“子集”是LeetCode中的一个经典递归与回溯问题,旨在考察开发者对这两种核心算法的理解和应用。 递归是一...

    uber leetcode

    #### 一、Word Break II - **知识点:**动态规划、回溯算法。 - **题目描述:**给定一个非空字符串s和一个包含非空单词列表的词典wordDict,在字符串中增加空格来构建一个句子,使得句子中所有的单词都在词典中。...

    數位之和leetcode-leetcode-cpp:我的LeetCodeC++答案

    subsets: 78 - permutation - combination sum: 39, 40, 216 - palindrome partitioning - regex - sudoku solver: 37 排序 - merge sort - quick sort - insertion sort - selection sort - counting sort 位操作 -...

Global site tag (gtag.js) - Google Analytics