public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> ans=new ArrayList<>();
//枚举子集长度
for (int i = 0; i <= nums.length; i++) {
backtrack(nums,ans,new ArrayList<>(),0,i);
}
return ans;
}
public void backtrack(int[] nums,List<List<Integer>> ans,List<Integer> list,int idx,int n){
if(list.size()==n)
{
ans.add(new ArrayList<>(list));
return;
}
for (int i = idx; i < nums.length; i++) {
list.add(nums[i]);
backtrack(nums,ans,list,i+1,n);
list.remove(list.size()-1);
}
}
回溯算法leetcode.78
最新推荐文章于 2024-07-25 21:13:04 发布