90. 子集 II

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/subsets-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
// 有重复数字了,排序解决
// 同一个数字不能多次用
Stack<Integer> stack = new Stack<>();
List<List<Integer>> ret = new ArrayList<>();
public List<List<Integer>> subsetsWithDup(int[] nums) {
Arrays.sort(nums);
dfs(nums,0);
return ret;
}
public void dfs(int[] nums, int index) {
ret.add(new ArrayList<>(stack));
if(index == nums.length) {
return;
}
for(int i=index;i<nums.length;i++) {
// 解决重复的组合
if(i-1>=index && nums[i-1] == nums[i]) {
continue;
}
stack.push(nums[i]);
dfs(nums,i+1);
stack.pop();
}
}
浙公网安备 33010602011771号