Skip to content

Commit 9c11938

Browse files
committed
feat: add solutions to lc problem: No.2171
No.2171.Removing Minimum Number of Magic Beans
1 parent ffdd1bb commit 9c11938

File tree

6 files changed

+184
-4
lines changed

6 files changed

+184
-4
lines changed

solution/2100-2199/2171.Removing Minimum Number of Magic Beans/README.md

+66-2
Original file line numberDiff line numberDiff line change
@@ -57,22 +57,45 @@
5757

5858
<!-- 这里可写通用的实现逻辑 -->
5959

60+
**方法一:排序求和**
61+
6062
<!-- tabs:start -->
6163

6264
### **Python3**
6365

6466
<!-- 这里可写当前语言的特殊实现逻辑 -->
6567

6668
```python
67-
69+
class Solution:
70+
def minimumRemoval(self, beans: List[int]) -> int:
71+
beans.sort()
72+
ans = s = sum(beans)
73+
n = len(beans)
74+
for i, v in enumerate(beans):
75+
ans = min(ans, s - v * (n - i))
76+
return ans
6877
```
6978

7079
### **Java**
7180

7281
<!-- 这里可写当前语言的特殊实现逻辑 -->
7382

7483
```java
75-
84+
class Solution {
85+
public long minimumRemoval(int[] beans) {
86+
Arrays.sort(beans);
87+
long s = 0;
88+
for (int v : beans) {
89+
s += v;
90+
}
91+
long ans = s;
92+
int n = beans.length;
93+
for (int i = 0; i < n; ++i) {
94+
ans = Math.min(ans, s - (long) beans[i] * (n - i));
95+
}
96+
return ans;
97+
}
98+
}
7699
```
77100

78101
### **TypeScript**
@@ -91,6 +114,47 @@ function minimumRemoval(beans: number[]): number {
91114
}
92115
```
93116

117+
### **C++**
118+
119+
```cpp
120+
class Solution {
121+
public:
122+
long long minimumRemoval(vector<int>& beans) {
123+
sort(beans.begin(), beans.end());
124+
long long s = accumulate(beans.begin(), beans.end(), 0ll);
125+
long long ans = s;
126+
int n = beans.size();
127+
for (int i = 0; i < n; ++i) ans = min(ans, s - 1ll * beans[i] * (n - i));
128+
return ans;
129+
}
130+
};
131+
```
132+
133+
### **Go**
134+
135+
```go
136+
func minimumRemoval(beans []int) int64 {
137+
sort.Ints(beans)
138+
s := 0
139+
for _, v := range beans {
140+
s += v
141+
}
142+
ans := s
143+
n := len(beans)
144+
for i, v := range beans {
145+
ans = min(ans, s-v*(n-i))
146+
}
147+
return int64(ans)
148+
}
149+
150+
func min(a, b int) int {
151+
if a < b {
152+
return a
153+
}
154+
return b
155+
}
156+
```
157+
94158
### **...**
95159

96160
```

solution/2100-2199/2171.Removing Minimum Number of Magic Beans/README_EN.md

+64-2
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,34 @@ There are no other solutions that removes 7 beans or fewer.
5858
### **Python3**
5959

6060
```python
61-
61+
class Solution:
62+
def minimumRemoval(self, beans: List[int]) -> int:
63+
beans.sort()
64+
ans = s = sum(beans)
65+
n = len(beans)
66+
for i, v in enumerate(beans):
67+
ans = min(ans, s - v * (n - i))
68+
return ans
6269
```
6370

6471
### **Java**
6572

6673
```java
67-
74+
class Solution {
75+
public long minimumRemoval(int[] beans) {
76+
Arrays.sort(beans);
77+
long s = 0;
78+
for (int v : beans) {
79+
s += v;
80+
}
81+
long ans = s;
82+
int n = beans.length;
83+
for (int i = 0; i < n; ++i) {
84+
ans = Math.min(ans, s - (long) beans[i] * (n - i));
85+
}
86+
return ans;
87+
}
88+
}
6889
```
6990

7091
### **TypeScript**
@@ -83,6 +104,47 @@ function minimumRemoval(beans: number[]): number {
83104
}
84105
```
85106

107+
### **C++**
108+
109+
```cpp
110+
class Solution {
111+
public:
112+
long long minimumRemoval(vector<int>& beans) {
113+
sort(beans.begin(), beans.end());
114+
long long s = accumulate(beans.begin(), beans.end(), 0ll);
115+
long long ans = s;
116+
int n = beans.size();
117+
for (int i = 0; i < n; ++i) ans = min(ans, s - 1ll * beans[i] * (n - i));
118+
return ans;
119+
}
120+
};
121+
```
122+
123+
### **Go**
124+
125+
```go
126+
func minimumRemoval(beans []int) int64 {
127+
sort.Ints(beans)
128+
s := 0
129+
for _, v := range beans {
130+
s += v
131+
}
132+
ans := s
133+
n := len(beans)
134+
for i, v := range beans {
135+
ans = min(ans, s-v*(n-i))
136+
}
137+
return int64(ans)
138+
}
139+
140+
func min(a, b int) int {
141+
if a < b {
142+
return a
143+
}
144+
return b
145+
}
146+
```
147+
86148
### **...**
87149

88150
```
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution {
2+
public:
3+
long long minimumRemoval(vector<int>& beans) {
4+
sort(beans.begin(), beans.end());
5+
long long s = accumulate(beans.begin(), beans.end(), 0ll);
6+
long long ans = s;
7+
int n = beans.size();
8+
for (int i = 0; i < n; ++i) ans = min(ans, s - 1ll * beans[i] * (n - i));
9+
return ans;
10+
}
11+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
func minimumRemoval(beans []int) int64 {
2+
sort.Ints(beans)
3+
s := 0
4+
for _, v := range beans {
5+
s += v
6+
}
7+
ans := s
8+
n := len(beans)
9+
for i, v := range beans {
10+
ans = min(ans, s-v*(n-i))
11+
}
12+
return int64(ans)
13+
}
14+
15+
func min(a, b int) int {
16+
if a < b {
17+
return a
18+
}
19+
return b
20+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public long minimumRemoval(int[] beans) {
3+
Arrays.sort(beans);
4+
long s = 0;
5+
for (int v : beans) {
6+
s += v;
7+
}
8+
long ans = s;
9+
int n = beans.length;
10+
for (int i = 0; i < n; ++i) {
11+
ans = Math.min(ans, s - (long) beans[i] * (n - i));
12+
}
13+
return ans;
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
class Solution:
2+
def minimumRemoval(self, beans: List[int]) -> int:
3+
beans.sort()
4+
ans = s = sum(beans)
5+
n = len(beans)
6+
for i, v in enumerate(beans):
7+
ans = min(ans, s - v * (n - i))
8+
return ans

0 commit comments

Comments
 (0)