力扣90题子集ⅡJava版-创新互联
class Solution {// 保存结果
List>res = new ArrayList<>();
// 暂存结果
Listpath = new ArrayList<>();
public List>subsetsWithDup(int[] nums) {// 升序排序
Arrays.sort(nums);
// 保存是否元素使用
boolean[] used = new boolean[nums.length];
backTracking(nums,0,used);
return res;
}
public void backTracking(int[] nums,int startIndex,boolean[] used){// 收集结果
res.add(new ArrayList<>(path));
// 终止条件,也可以不写
if(nums.length == startIndex){return;
}
for(int i=startIndex; i// 去重 此处操作类似于 组合总和Ⅱ
if(i>0 && nums[i]==nums[i-1] && used[i-1]==false){continue;
}
path.add(nums[i]);
used[i] = true;
// 回溯
backTracking(nums,i+1,used);
used[i] = false;
path.remove(path.size()-1);
}
}
}
运行结果:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
本文标题:力扣90题子集ⅡJava版-创新互联
文章转载:http://pwwzsj.com/article/degcoj.html