[LeetCode]Subsets II
来源:互联网 发布:刘飞儿faye知乎 编辑:程序博客网 时间:2024/05/17 07:25
Question
Given a collection of integers that might contain duplicates, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,2]
, a solution is:
[ [2], [1], [1,2,2], [2,2], [1,2], []]
本题难度Medium。
【复杂度】
时间 O(N) 空间 O(N)
【思路】
与[LeetCode]Subsets差不多,区别有两点:
- 有重复的数字
- 因为有重复,所以需要先进行排序
只要在循环中加入判断:if(i==index||nums[i-1]!=nums[i])
(19行)即可。
【代码】
public class Solution { public List<List<Integer>> subsetsWithDup(int[] nums) { //require List<List<Integer>> ans=new LinkedList<>(); ans.add(new LinkedList<Integer>()); Arrays.sort(nums); //invariant helper(0,new LinkedList<Integer>(),nums,ans); //ensure return ans; } private void helper(int index,List<Integer> preList,int[] nums,List<List<Integer>> ans){ int size=nums.length; //base case if(index==size) return; for(int i=index;i<size;i++){ if(i==index||nums[i-1]!=nums[i]){ preList.add(nums[i]); ans.add(new LinkedList<Integer>(preList)); helper(i+1,preList,nums,ans); preList.remove(preList.size()-1); } } }}
0 0
- 【LeetCode】 Subsets Subsets II
- 【LeetCode】Subsets & Subsets II
- LeetCode Subsets && Subsets II
- LeetCode Subsets && Subsets II
- LeetCode-Subsets & Subsets II
- [LeetCode] Combinations、Subsets、Subsets II
- 【Leetcode】【python】Subsets/Subsets II
- LeetCode: Subsets II
- LeetCode SubSets II
- LeetCode: Subsets II
- leetcode 48: Subsets II
- [LeetCode] Subsets II
- [Leetcode] Subsets II
- [leetcode] Subsets II
- leetcode Subsets II
- leetcode Subsets II problem
- [LeetCode]Subsets II
- [leetcode]Subsets II
- hbase行键过滤器RowFilter
- springIOC源码解析(四)
- Win8/8.1/10 ISE _pn.exe crash-崩溃问题解决
- java基础8_对象转型_接口
- ios之静态库的CPU架构
- [LeetCode]Subsets II
- 正则表达式判断字符串时间格式
- 整流二极管
- Android Handler详细使用方法实例
- Number.MAX_SAFE_INTEGER与Number.MAX_VALUE
- 颜色渐变处理
- MVC 后台 Action 直接写模型接收JSON转模型的数据
- java面试题
- RAC 知识点