繰り返される要素のない整数配列numのセットが与えられた場合、配列のすべての可能なサブセット(べき集合)を返します。
注:ソリューションセットに重複するサブセットを含めることはできません。
例:
入力:nums = [1,2,3]
出力:
[
[3]、
[1]、
[2]、
[1,2,3]、
[1,3]、
[2,3]、
[1 、2]、
[]
]
class Solution {
public List<List<Integer>> subsets(int[] nums) {
List<List<Integer>> res = new ArrayList();
Deque<Integer> que = new LinkedList();
back(0,nums,que,res);
return res;
}
public void back(int start,int[] nums,Deque<Integer> que,List<List<Integer>> res){
res.add(new ArrayList(que));
for(int i=start;i<nums.length;i++){
que.addLast(nums[i]);
back(i+1,nums,que,res);
que.removeLast();
}
}
}