文章目录
- 一、题目
- 二、题解
一、题目
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:
Input: nums = [1,2,3]
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
Example 2:
Input: nums = [0]
Output: [[],[0]]
Constraints:
1 <= nums.length <= 10
-10 <= nums[i] <= 10
All the numbers of nums are unique.
二、题解
在树的每个节点都收获结果,而不是像组合问题那样在叶子结点收获结果。
class Solution {
public:vector<vector<int>> res;vector<int> path;void backtracking(vector<int>& nums,int startIndex){res.push_back(path);if(startIndex == nums.size()) return;for(int i = startIndex;i < nums.size();i++){path.push_back(nums[i]);backtracking(nums,i + 1);path.pop_back();}}vector<vector<int>> subsets(vector<int>& nums) {backtracking(nums,0);return res;}
};