package code;
/*
* 78. Subsets
* é¢æï¼æ±æ°ç»åé
* é¾åº¦ï¼Medium
* åç±»ï¼Array, Backtracking, Bit Manipulation
* æè·¯ï¼å溯æ³
* Tipsï¼ålc46,39使¯è¾.è¦æ¾åºåéï¼æä»¥æ¯æ¬¡backtrackingç´æ¥æ·»å è¿res
*/
import java.util.ArrayList;
import java.util.List;
public class lc78 {
public static void main(String[] args) {
int[] nums= {1,2,3};
System.out.println(subsets(nums).toString());
}
public static List> subsets(int[] nums) {
List
> res = new ArrayList
>();
res.add(new ArrayList<>());
if(nums.length==0)
return res;
backtracking(res,nums,new ArrayList(),-1);
return res;
}
public static void backtracking(List
> res, int[] nums, List l, int start){
if(start>=nums.length)
return;
for (int i = start+1; i < nums.length ; i++) {
l.add(nums[i]);
res.add(new ArrayList