题目的链接在这里:https://leetcode-cn.com/problems/subsets-ii/
- 题目大意
- 一、示意图
- 二、解题思路
- 回溯
题目大意 给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。
解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。
一、示意图 二、解题思路
回溯回溯
代码如下:
class Solution {
List> res=new linkedList<>();
List temp=new linkedList<>();
public List> subsetsWithDup(int[] nums) {
//也就是包含重复元素 然后选择 感觉就是多了一个筛选的过程
//把原数组做了一个排序操作 也是问题的关键
//为什么排序之前会出问题呢
Arrays.sort(nums);
if(nums.length==0){
res.add(new linkedList<>());
return res;
}
backTrance(nums,0);
return res;
}
private void backTrance(int[] nums, int start) {
//先进行包含判断
if(!res.contains(temp)){
res.add(new linkedList<>(temp));
}
//然后开始判断
for(int i=start;i


![java leetcode之[中等]90. 子集 II java leetcode之[中等]90. 子集 II](http://www.mshxw.com/aiimages/31/643535.png)
