- 一眼回溯,先add再remove这种解法。
- 注意一下,为了防止重复,需要index记录当前已经加到哪里了。
ArrayList> ans = new ArrayList<>(); public List
> subsets(int[] nums) { List
ll = new ArrayList<>(); //开始进入回溯 back(nums,ll,0); return ans; } public void back(int[] nums,List ll,int index){ ans.add(new ArrayList(ll)); for (int i=index;i if(ll.contains(nums[i])){ continue; }else { ll.add(nums[i]); back(nums,ll,i+1); ll.remove(ll.size()-1); } } }



