File tree Expand file tree Collapse file tree 6 files changed +179
-2
lines changed
solution/1400-1499/1402.Reducing Dishes Expand file tree Collapse file tree 6 files changed +179
-2
lines changed Original file line number Diff line number Diff line change 53
53
54
54
<!-- 这里可写通用的实现逻辑 -->
55
55
56
+ ** 方法一:排序 + 贪心**
57
+
56
58
<!-- tabs:start -->
57
59
58
60
### ** Python3**
59
61
60
62
<!-- 这里可写当前语言的特殊实现逻辑 -->
61
63
62
64
``` 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
64
76
```
65
77
66
78
### ** Java**
67
79
68
80
<!-- 这里可写当前语言的特殊实现逻辑 -->
69
81
70
82
``` 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
+ ```
71
118
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
+ }
72
135
```
73
136
74
137
### ** ...**
Original file line number Diff line number Diff line change @@ -53,13 +53,74 @@ Each dish is prepared in one unit of time.</pre>
53
53
### ** Python3**
54
54
55
55
``` 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
57
67
```
58
68
59
69
### ** Java**
60
70
61
71
``` 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
+ ```
62
107
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
+ }
63
124
```
64
125
65
126
### ** ...**
Original file line number Diff line number Diff line change
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
+ };
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
You can’t perform that action at this time.
0 commit comments