Description
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.
Solution
Python3
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
N = len(nums)
res = []
for mask in range(1 << N):
A = []
for j in range(N):
if mask & (1 << j):
A.append(nums[j])
res.append(A)
return res
C++
class Solution {
public:
vector<vector<int>> subsets(vector<int>& nums) {
int n = nums.size();
vector<vector<int>> res;
for (int i=0; i < 1<<n; ++i){
vector<int> c;
for (int j = 0; j < n; ++j)
if (i >> j&1)
c.push_back(nums[j]);
res.push_back(c);
}
return res;
}
};