Given a set of distinct integers, nums, return all possible subsets.
Note: The solution set must not contain duplicate subsets.
For example,
If nums = [1,2,3], a solution is:
[
[3],
[1],
[2],
[1,2,3],
[1,3],
[2,3],
[1,2],
[]
]
十分钟很快
List<List<Integer>> results = new ArrayList<List<Integer>>();
List<Integer> result = new ArrayList<Integer>();
int[] nums;
public List<List<Integer>> subsets(int[] nums) {
this.nums = nums;
backtracking(0,0);
return this.results;
}
public void backtracking(int index,int from){
if(index <= nums.length){
List<Integer> copyOfResult = new ArrayList<Integer>(result);
results.add(copyOfResult);
for(int i = from;i < nums.length;i++){
result.add(nums[i]);
backtracking(index+1,i+1);
result.remove(index);
}
}
}