Skip to content

Commit 41e7a8a

Browse files
committed
feat: add solutions to lc problem: No.1402
No.1402.Reducing Dishes
1 parent 794903c commit 41e7a8a

File tree

6 files changed

+179
-2
lines changed

6 files changed

+179
-2
lines changed

solution/1400-1499/1402.Reducing Dishes/README.md

Lines changed: 64 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,22 +53,85 @@
5353

5454
<!-- 这里可写通用的实现逻辑 -->
5555

56+
**方法一:排序 + 贪心**
57+
5658
<!-- tabs:start -->
5759

5860
### **Python3**
5961

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

6264
```python
63-
65+
class Solution:
66+
def maxSatisfaction(self, satisfaction: List[int]) -> int:
67+
satisfaction.sort(reverse=True)
68+
ans = presum = 0
69+
for v in satisfaction:
70+
presum += v
71+
if presum > 0:
72+
ans += presum
73+
else:
74+
break
75+
return ans
6476
```
6577

6678
### **Java**
6779

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

7082
```java
83+
class Solution {
84+
public int maxSatisfaction(int[] satisfaction) {
85+
Arrays.sort(satisfaction);
86+
int ans = 0, presum = 0;
87+
for (int i = satisfaction.length - 1; i >= 0; --i) {
88+
presum += satisfaction[i];
89+
if (presum > 0) {
90+
ans += presum;
91+
} else {
92+
break;
93+
}
94+
}
95+
return ans;
96+
}
97+
}
98+
```
99+
100+
### **C++**
101+
102+
```cpp
103+
class Solution {
104+
public:
105+
int maxSatisfaction(vector<int>& satisfaction) {
106+
sort(rbegin(satisfaction), rend(satisfaction));
107+
int ans = 0, presum = 0;
108+
for (int v : satisfaction)
109+
{
110+
presum += v;
111+
if (presum > 0) ans += presum;
112+
else break;
113+
}
114+
return ans;
115+
}
116+
};
117+
```
71118
119+
### **Go**
120+
121+
```go
122+
func maxSatisfaction(satisfaction []int) int {
123+
sort.Ints(satisfaction)
124+
ans, presum := 0, 0
125+
for i := len(satisfaction) - 1; i >= 0; i-- {
126+
presum += satisfaction[i]
127+
if presum > 0 {
128+
ans += presum
129+
} else {
130+
break
131+
}
132+
}
133+
return ans
134+
}
72135
```
73136

74137
### **...**

solution/1400-1499/1402.Reducing Dishes/README_EN.md

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,74 @@ Each dish is prepared in one unit of time.</pre>
5353
### **Python3**
5454

5555
```python
56-
56+
class Solution:
57+
def maxSatisfaction(self, satisfaction: List[int]) -> int:
58+
satisfaction.sort(reverse=True)
59+
ans = presum = 0
60+
for v in satisfaction:
61+
presum += v
62+
if presum > 0:
63+
ans += presum
64+
else:
65+
break
66+
return ans
5767
```
5868

5969
### **Java**
6070

6171
```java
72+
class Solution {
73+
public int maxSatisfaction(int[] satisfaction) {
74+
Arrays.sort(satisfaction);
75+
int ans = 0, presum = 0;
76+
for (int i = satisfaction.length - 1; i >= 0; --i) {
77+
presum += satisfaction[i];
78+
if (presum > 0) {
79+
ans += presum;
80+
} else {
81+
break;
82+
}
83+
}
84+
return ans;
85+
}
86+
}
87+
```
88+
89+
### **C++**
90+
91+
```cpp
92+
class Solution {
93+
public:
94+
int maxSatisfaction(vector<int>& satisfaction) {
95+
sort(rbegin(satisfaction), rend(satisfaction));
96+
int ans = 0, presum = 0;
97+
for (int v : satisfaction)
98+
{
99+
presum += v;
100+
if (presum > 0) ans += presum;
101+
else break;
102+
}
103+
return ans;
104+
}
105+
};
106+
```
62107
108+
### **Go**
109+
110+
```go
111+
func maxSatisfaction(satisfaction []int) int {
112+
sort.Ints(satisfaction)
113+
ans, presum := 0, 0
114+
for i := len(satisfaction) - 1; i >= 0; i-- {
115+
presum += satisfaction[i]
116+
if presum > 0 {
117+
ans += presum
118+
} else {
119+
break
120+
}
121+
}
122+
return ans
123+
}
63124
```
64125

65126
### **...**
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution {
2+
public:
3+
int maxSatisfaction(vector<int>& satisfaction) {
4+
sort(rbegin(satisfaction), rend(satisfaction));
5+
int ans = 0, presum = 0;
6+
for (int v : satisfaction)
7+
{
8+
presum += v;
9+
if (presum > 0) ans += presum;
10+
else break;
11+
}
12+
return ans;
13+
}
14+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
func maxSatisfaction(satisfaction []int) int {
2+
sort.Ints(satisfaction)
3+
ans, presum := 0, 0
4+
for i := len(satisfaction) - 1; i >= 0; i-- {
5+
presum += satisfaction[i]
6+
if presum > 0 {
7+
ans += presum
8+
} else {
9+
break
10+
}
11+
}
12+
return ans
13+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
class Solution {
2+
public int maxSatisfaction(int[] satisfaction) {
3+
Arrays.sort(satisfaction);
4+
int ans = 0, presum = 0;
5+
for (int i = satisfaction.length - 1; i >= 0; --i) {
6+
presum += satisfaction[i];
7+
if (presum > 0) {
8+
ans += presum;
9+
} else {
10+
break;
11+
}
12+
}
13+
return ans;
14+
}
15+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
class Solution:
2+
def maxSatisfaction(self, satisfaction: List[int]) -> int:
3+
satisfaction.sort(reverse=True)
4+
ans = presum = 0
5+
for v in satisfaction:
6+
presum += v
7+
if presum > 0:
8+
ans += presum
9+
else:
10+
break
11+
return ans

0 commit comments

Comments
 (0)