@@ -47,13 +47,47 @@ Backtracking
47
47
### ** Python3**
48
48
49
49
``` python
50
-
50
+ class Solution :
51
+ def subsets (self , nums : List[int ]) -> List[List[int ]]:
52
+ def dfs (u , t ):
53
+ if u == len (nums):
54
+ ans.append(t[:])
55
+ return
56
+ t.append(nums[u])
57
+ dfs(u + 1 , t)
58
+ t.pop()
59
+ dfs(u + 1 , t)
60
+
61
+ ans = []
62
+ dfs(0 , [])
63
+ return ans
51
64
```
52
65
53
66
### ** Java**
54
67
55
68
``` java
69
+ class Solution {
70
+ private List<List<Integer > > ans;
71
+ private int [] nums;
72
+
73
+ public List<List<Integer > > subsets (int [] nums ) {
74
+ ans = new ArrayList<> ();
75
+ this . nums = nums;
76
+ dfs(0 , new ArrayList<> ());
77
+ return ans;
78
+ }
56
79
80
+ private void dfs (int u , List<Integer > t ) {
81
+ if (u == nums. length) {
82
+ ans. add(new ArrayList<> (t));
83
+ return ;
84
+ }
85
+ t. add(nums[u]);
86
+ dfs(u + 1 , t);
87
+ t. remove(t. size() - 1 );
88
+ dfs(u + 1 , t);
89
+ }
90
+ }
57
91
```
58
92
59
93
### ** JavaScript**
@@ -153,6 +187,57 @@ impl Solution {
153
187
}
154
188
```
155
189
190
+ ### ** C++**
191
+
192
+ ``` cpp
193
+ class Solution {
194
+ public:
195
+ vector<vector<int >> subsets(vector<int >& nums) {
196
+ vector<int > t;
197
+ vector<vector<int >> ans;
198
+ dfs(0, t, nums, ans);
199
+ return ans;
200
+ }
201
+
202
+ void dfs(int u, vector<int>& t, vector<int>& nums, vector<vector<int>>& ans) {
203
+ if (u == nums.size())
204
+ {
205
+ ans.push_back(t);
206
+ return;
207
+ }
208
+ t.push_back(nums[u]);
209
+ dfs (u + 1, t, nums, ans);
210
+ t.pop_back();
211
+ dfs(u + 1, t, nums, ans);
212
+ }
213
+ };
214
+ ```
215
+
216
+ ### **Go**
217
+
218
+ ```go
219
+ func subsets(nums []int) [][]int {
220
+ var ans [][]int
221
+ var dfs func(u int, t []int)
222
+ dfs = func(u int, t []int) {
223
+ if u == len(nums) {
224
+ cp := make([]int, len(t))
225
+ copy(cp, t)
226
+ ans = append(ans, cp)
227
+ return
228
+ }
229
+ t = append(t, nums[u])
230
+ dfs(u+1, t)
231
+ t = t[:len(t)-1]
232
+ dfs(u+1, t)
233
+
234
+ }
235
+ var t []int
236
+ dfs(0, t)
237
+ return ans
238
+ }
239
+ ```
240
+
156
241
### ** ...**
157
242
158
243
```
0 commit comments