Skip to content
This repository was archived by the owner on Apr 27, 2025. It is now read-only.

Commit a76cc14

Browse files
authored
Create 78-Subsets.md
1 parent f083a61 commit a76cc14

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed

78-Subsets.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# 78. Subsets
2+
3+
### 2022-05-10
4+
5+
Given an integer array `nums` of **unique** elements, return *all possible subsets (the power set)*.
6+
7+
The solution set **must not** contain duplicate subsets. Return the solution in **any order**.
8+
9+
10+
11+
**Example 1:**
12+
13+
```
14+
Input: nums = [1,2,3]
15+
Output: [[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]
16+
```
17+
18+
**Example 2:**
19+
20+
```
21+
Input: nums = [0]
22+
Output: [[],[0]]
23+
```
24+
25+
26+
27+
28+
29+
# Solution
30+
31+
```swift
32+
class Solution {
33+
func subsets(_ nums: [Int]) -> [[Int]] {
34+
var temp = [[Int]]()
35+
_subset(nums: nums, context: [], level: 0, store: &temp)
36+
return temp
37+
}
38+
39+
private func _subset(nums: [Int], context: [Int], level: Int, store: inout [[Int]]) {
40+
guard nums.count > level else {
41+
store.append(context)
42+
return
43+
}
44+
_subset(nums: nums, context: context, level: level + 1, store: &store)
45+
var ctx = context
46+
ctx.append(nums[level])
47+
_subset(nums: nums, context: ctx, level: level + 1, store: &store)
48+
}
49+
}
50+
```

0 commit comments

Comments
 (0)