Given an integer array nums of unique elements, return all possible subsets (the power set).
The solution set must not contain duplicate subsets. Return the solution in any order.
Example 1:
1 2
| Input: nums = [1,2,3] Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
|
Example 2:
1 2
| Input: nums = [0] Output: [[],[0]]
|
Constraints:
1 <= nums.length <= 10
-10 <= nums[i] <= 10
All the numbers of nums are unique.
给 元素不重复 无序 数组,求所有的子数组,组合问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| package leetcode.problems.medium;
import java.util.ArrayList; import java.util.Arrays; import java.util.List;
public class Subsets { public List<List<Integer>> subsets(int[] nums) { List<List<Integer>> result = new ArrayList<List<Integer>>(); List<Integer> path = new ArrayList<>(); Arrays.sort(nums);
backtrack(result, path, nums, 0); return result; }
private void backtrack(List<List<Integer>> result, List<Integer> path, int[] nums, int start) { result.add(new ArrayList<>(path)); for (int i = start; i < nums.length; i++) { path.add(nums[i]); backtrack(result, path, nums, i+1); path.remove(path.size() - 1); } } }
|