Skip to content

Commit 959af16

Browse files
committed
feat: add solutions to lc problem: No.0078
No.0078.Subsets
1 parent dc65ef6 commit 959af16

File tree

5 files changed

+153
-6
lines changed

5 files changed

+153
-6
lines changed

solution/0000-0099/0078.Subsets/README.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@
4040

4141
<!-- 这里可写通用的实现逻辑 -->
4242

43+
**方法一:回溯**
44+
45+
**方法二:二进制枚举**
46+
4347
<!-- tabs:start -->
4448

4549
### **Python3**
@@ -63,6 +67,19 @@ class Solution:
6367
return ans
6468
```
6569

70+
```python
71+
class Solution:
72+
def subsets(self, nums: List[int]) -> List[List[int]]:
73+
ans = []
74+
for mask in range(1 << len(nums)):
75+
t = []
76+
for i, v in enumerate(nums):
77+
if (mask >> i) & 1:
78+
t.append(v)
79+
ans.append(t)
80+
return ans
81+
```
82+
6683
### **Java**
6784

6885
<!-- 这里可写当前语言的特殊实现逻辑 -->
@@ -92,6 +109,25 @@ class Solution {
92109
}
93110
```
94111

112+
```java
113+
class Solution {
114+
public List<List<Integer>> subsets(int[] nums) {
115+
int n = nums.length;
116+
List<List<Integer>> ans = new ArrayList<>();
117+
for (int mask = 0; mask < 1 << n; ++mask) {
118+
List<Integer> t = new ArrayList<>();
119+
for (int i = 0; i < n; ++i) {
120+
if (((mask >> i) & 1) == 1) {
121+
t.add(nums[i]);
122+
}
123+
}
124+
ans.add(t);
125+
}
126+
return ans;
127+
}
128+
}
129+
```
130+
95131
### **C++**
96132

97133
```cpp
@@ -118,6 +154,30 @@ public:
118154
};
119155
```
120156
157+
```cpp
158+
class Solution {
159+
public:
160+
vector<vector<int>> subsets(vector<int>& nums) {
161+
vector<vector<int>> ans;
162+
vector<int> t;
163+
int n = nums.size();
164+
for (int mask = 0; mask < 1 << n; ++mask)
165+
{
166+
t.clear();
167+
for (int i = 0; i < n; ++i)
168+
{
169+
if ((mask >> i) & 1)
170+
{
171+
t.push_back(nums[i]);
172+
}
173+
}
174+
ans.push_back(t);
175+
}
176+
return ans;
177+
}
178+
};
179+
```
180+
121181
### **Go**
122182

123183
```go
@@ -140,6 +200,23 @@ func subsets(nums []int) [][]int {
140200
}
141201
```
142202

203+
```go
204+
func subsets(nums []int) [][]int {
205+
var ans [][]int
206+
n := len(nums)
207+
for mask := 0; mask < 1<<n; mask++ {
208+
t := []int{}
209+
for i, v := range nums {
210+
if ((mask >> i) & 1) == 1 {
211+
t = append(t, v)
212+
}
213+
}
214+
ans = append(ans, t)
215+
}
216+
return ans
217+
}
218+
```
219+
143220
### **Rust**
144221

145222
```rust

solution/0000-0099/0078.Subsets/README_EN.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,19 @@ class Solution:
5757
return ans
5858
```
5959

60+
```python
61+
class Solution:
62+
def subsets(self, nums: List[int]) -> List[List[int]]:
63+
ans = []
64+
for mask in range(1 << len(nums)):
65+
t = []
66+
for i, v in enumerate(nums):
67+
if (mask >> i) & 1:
68+
t.append(v)
69+
ans.append(t)
70+
return ans
71+
```
72+
6073
### **Java**
6174

6275
```java
@@ -84,6 +97,25 @@ class Solution {
8497
}
8598
```
8699

100+
```java
101+
class Solution {
102+
public List<List<Integer>> subsets(int[] nums) {
103+
int n = nums.length;
104+
List<List<Integer>> ans = new ArrayList<>();
105+
for (int mask = 0; mask < 1 << n; ++mask) {
106+
List<Integer> t = new ArrayList<>();
107+
for (int i = 0; i < n; ++i) {
108+
if (((mask >> i) & 1) == 1) {
109+
t.add(nums[i]);
110+
}
111+
}
112+
ans.add(t);
113+
}
114+
return ans;
115+
}
116+
}
117+
```
118+
87119
### **C++**
88120

89121
```cpp
@@ -110,6 +142,30 @@ public:
110142
};
111143
```
112144
145+
```cpp
146+
class Solution {
147+
public:
148+
vector<vector<int>> subsets(vector<int>& nums) {
149+
vector<vector<int>> ans;
150+
vector<int> t;
151+
int n = nums.size();
152+
for (int mask = 0; mask < 1 << n; ++mask)
153+
{
154+
t.clear();
155+
for (int i = 0; i < n; ++i)
156+
{
157+
if ((mask >> i) & 1)
158+
{
159+
t.push_back(nums[i]);
160+
}
161+
}
162+
ans.push_back(t);
163+
}
164+
return ans;
165+
}
166+
};
167+
```
168+
113169
### **Go**
114170

115171
```go
@@ -132,6 +188,23 @@ func subsets(nums []int) [][]int {
132188
}
133189
```
134190

191+
```go
192+
func subsets(nums []int) [][]int {
193+
var ans [][]int
194+
n := len(nums)
195+
for mask := 0; mask < 1<<n; mask++ {
196+
t := []int{}
197+
for i, v := range nums {
198+
if ((mask >> i) & 1) == 1 {
199+
t = append(t, v)
200+
}
201+
}
202+
ans = append(ans, t)
203+
}
204+
return ans
205+
}
206+
```
207+
135208
### **Rust**
136209

137210
```rust

solution/1600-1699/1601.Maximum Number of Achievable Transfer Requests/README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,7 @@ var maximumRequests = function (n, requests) {
209209
let d = new Array(n).fill(0);
210210
for (let i = 0; i < m; ++i) {
211211
if ((x >> i) & 1) {
212-
const f = requests[i][0];
213-
const t = requests[i][1];
212+
const [f, t] = requests[i];
214213
d[f]--;
215214
d[t]++;
216215
}

solution/1600-1699/1601.Maximum Number of Achievable Transfer Requests/README_EN.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,8 +192,7 @@ var maximumRequests = function (n, requests) {
192192
let d = new Array(n).fill(0);
193193
for (let i = 0; i < m; ++i) {
194194
if ((x >> i) & 1) {
195-
const f = requests[i][0];
196-
const t = requests[i][1];
195+
const [f, t] = requests[i];
197196
d[f]--;
198197
d[t]++;
199198
}

solution/1600-1699/1601.Maximum Number of Achievable Transfer Requests/Solution.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ var maximumRequests = function (n, requests) {
88
let d = new Array(n).fill(0);
99
for (let i = 0; i < m; ++i) {
1010
if ((x >> i) & 1) {
11-
const f = requests[i][0];
12-
const t = requests[i][1];
11+
const [f, t] = requests[i];
1312
d[f]--;
1413
d[t]++;
1514
}

0 commit comments

Comments
 (0)