首页 > 代码库 > leetcode 90 Subsets II ----- java
leetcode 90 Subsets II ----- java
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], [] ]
这道题就是Subsets的延伸,只不过数组中有重复的数字。
所以每次遇到重复的数字,continue就好。(注意flag的设立,必须有flag,否则结果中会出现一个重复的数字都没有)。
public class Solution { List<List<Integer>> res = new ArrayList<>(); int[] num; int len; public List<List<Integer>> subsetsWithDup(int[] nums) { len = nums.length; num = nums; Arrays.sort(num); res.add(new ArrayList<>()); sub(0,new ArrayList<>() ); return res; } public void sub(int start,List<Integer> ans){ int flag = 0; for( int i = start;i<len;i++){ if( i > 0 && flag == 1 && num[i] == num[i-1]) continue; ans.add(num[i]); flag = 1; res.add(new ArrayList<Integer>(ans)); sub(i+1,ans); ans.remove(ans.size()-1); } return ; } }
leetcode 90 Subsets II ----- java
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。