Medium
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]]
Plain Text
복사
Example 2:
Input: nums = [0]
Output: [[],[0]]
Plain Text
복사
Constraints:
•
1 <= nums.length <= 10
•
10 <= nums[i] <= 10
•
All the numbers of nums are unique.
My solution
공집합을 포함한 subsetArr 배열을 준비한다.
숫자 배열을 for문으로 순회하면서 숫자마다 현재 가지고 있는 subsetArr의 각 요소의 뒤에 붙이고, 그 집합을 subsetArr에 다시 넣는다.
[[]]
1 추가 [ [], [ 1 ] ] (subsetArr 길이만큼 1번 반복)
[[], [ 1 ] ]
2 추가 [ [], [ 1 ], [ 2 ], [ 1, 2 ] ] (subsetArr 길이만큼 2번 반복)
[ [], [ 1 ], [ 2 ], [ 1, 2 ] ]
3 추가 [ [], [ 1 ], [ 2 ], [ 1, 2 ], [ 3 ] , [ 1, 3 ], [ 2, 3 ], [ 1, 2, 3] ] (subsetArr 길이만큼 3번 반복)
소스코드
const subsets = nums => {
const subsetArr = [[]];
for (const x of nums) {
const size = subsetArr.length;
for (let i = 0; i < size; i++) {
subsetArr.push([...subsetArr[i], x]);
}
}
return subsetArr;
};
JavaScript
복사