leetcode之subset II
2017-09-05 21:48
197 查看
题目
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:
实现
publicArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
ArrayList<ArrayList<Integer>>res = new ArrayList<>();
if(num == null || num.length == 0) {
returnres;
}
Arrays.sort(num);
ArrayList<Integer>list = new ArrayList<>();
solve(num,0, res, list);
returnres;
}
privatevoid solve(int[] num, int start, ArrayList<ArrayList<Integer>> res,ArrayList<Integer> list) {
res.add(newArrayList<>(list));
if(start >= num.length)
return;
for(int i = start; i < num.length; i++) {
if(i > start && num[i] == num[i - 1]) {
continue;
}
list.add(num[i]);
solve(num,i + 1, res, list);
list.remove(list.size()- 1);
}
}
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], [] ]
实现
publicArrayList<ArrayList<Integer>> subsetsWithDup(int[] num) {
ArrayList<ArrayList<Integer>>res = new ArrayList<>();
if(num == null || num.length == 0) {
returnres;
}
Arrays.sort(num);
ArrayList<Integer>list = new ArrayList<>();
solve(num,0, res, list);
returnres;
}
privatevoid solve(int[] num, int start, ArrayList<ArrayList<Integer>> res,ArrayList<Integer> list) {
res.add(newArrayList<>(list));
if(start >= num.length)
return;
for(int i = start; i < num.length; i++) {
if(i > start && num[i] == num[i - 1]) {
continue;
}
list.add(num[i]);
solve(num,i + 1, res, list);
list.remove(list.size()- 1);
}
}
相关文章推荐
- subsetII leetcode c++
- Leetcode Subset I & II
- LeetCode78/90 subset I/II**
- Subset II leetcode java
- 【Leetcode】之Subset II
- leetcode90subsetii
- 【leetcode】 subset I、II
- LeetCode 练习: Subset ii
- [LeetCode 213] House Roober II
- 【Leetcode】Remove Duplicates from Sorted List II (Removing)
- [Leetcode之Search in Rotated Sorted Array II (Java)
- [LeetCode] Contains Duplicate(II,III)
- LeetCode : Intersection of Two Arrays II
- LeetCode--Best Time to Buy and Sell Stock II
- leetcode之Binary Tree Level Order Traversal II
- [leetcode]@python 81. Search in Rotated Sorted Array II
- [LeetCode] Word Ladder II(bfs、dfs)
- [Leetcode]Two Sum II - Input array is sorted
- LeetCode 81. Search in Rotated Sorted Array II
- [Leetcode]Path Sum II