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]]

class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
vector<vector<int>> res;
vector<int> temp;
backtrack(res,temp,nums,0);
return res;
}
void backtrack(vector<vector<int>> &res,vector<int>& temp,vector<int> nums,int start)
{
for(int i=start;i<nums.size();i++)
{
temp.push_back(nums[i]);
backtrack(res,temp,nums,i+1);
temp.pop_back();
}
res.push_back(temp);
}
};
Complexity Analysis: