File tree 3 files changed +82
-0
lines changed
solution/2400-2499/2483.Minimum Penalty for a Shop
3 files changed +82
-0
lines changed Original file line number Diff line number Diff line change @@ -146,6 +146,35 @@ public:
146
146
};
147
147
```
148
148
149
+ ### **Rust**
150
+
151
+ ```rust
152
+ impl Solution {
153
+ #[allow(dead_code)]
154
+ pub fn best_closing_time(customers: String) -> i32 {
155
+ let n = customers.len();
156
+ let mut penalty = i32::MAX;
157
+ let mut ret = -1;
158
+ let mut prefix_sum = vec![0; n + 1];
159
+
160
+ // Initialize the vector
161
+ for (i, c) in customers.chars().enumerate() {
162
+ prefix_sum[i + 1] = prefix_sum[i] + if c == 'Y' { 1 } else { 0 };
163
+ }
164
+
165
+ // Calculate the answer
166
+ for i in 0..=n {
167
+ if penalty > (prefix_sum[n] - prefix_sum[i]) as i32 + (i - prefix_sum[i]) as i32 {
168
+ penalty = (prefix_sum[n] - prefix_sum[i]) as i32 + (i - prefix_sum[i]) as i32;
169
+ ret = i as i32;
170
+ }
171
+ }
172
+
173
+ ret
174
+ }
175
+ }
176
+ ```
177
+
149
178
### ** Go**
150
179
151
180
``` go
Original file line number Diff line number Diff line change @@ -128,6 +128,35 @@ public:
128
128
};
129
129
```
130
130
131
+ ### **Rust**
132
+
133
+ ```rust
134
+ impl Solution {
135
+ #[allow(dead_code)]
136
+ pub fn best_closing_time(customers: String) -> i32 {
137
+ let n = customers.len();
138
+ let mut penalty = i32::MAX;
139
+ let mut ret = -1;
140
+ let mut prefix_sum = vec![0; n + 1];
141
+
142
+ // Initialize the vector
143
+ for (i, c) in customers.chars().enumerate() {
144
+ prefix_sum[i + 1] = prefix_sum[i] + if c == 'Y' { 1 } else { 0 };
145
+ }
146
+
147
+ // Calculate the answer
148
+ for i in 0..=n {
149
+ if penalty > (prefix_sum[n] - prefix_sum[i]) as i32 + (i - prefix_sum[i]) as i32 {
150
+ penalty = (prefix_sum[n] - prefix_sum[i]) as i32 + (i - prefix_sum[i]) as i32;
151
+ ret = i as i32;
152
+ }
153
+ }
154
+
155
+ ret
156
+ }
157
+ }
158
+ ```
159
+
131
160
### ** Go**
132
161
133
162
``` go
Original file line number Diff line number Diff line change
1
+ impl Solution {
2
+ #[ allow( dead_code) ]
3
+ pub fn best_closing_time ( customers : String ) -> i32 {
4
+ let n = customers. len ( ) ;
5
+ let mut penalty = i32:: MAX ;
6
+ let mut ret = -1 ;
7
+ let mut prefix_sum = vec ! [ 0 ; n + 1 ] ;
8
+
9
+ // Initialize the vector
10
+ for ( i, c) in customers. chars ( ) . enumerate ( ) {
11
+ prefix_sum[ i + 1 ] = prefix_sum[ i] + if c == 'Y' { 1 } else { 0 } ;
12
+ }
13
+
14
+ // Calculate the answer
15
+ for i in 0 ..=n {
16
+ if penalty > ( prefix_sum[ n] - prefix_sum[ i] ) as i32 + ( i - prefix_sum[ i] ) as i32 {
17
+ penalty = ( prefix_sum[ n] - prefix_sum[ i] ) as i32 + ( i - prefix_sum[ i] ) as i32 ;
18
+ ret = i as i32 ;
19
+ }
20
+ }
21
+
22
+ ret
23
+ }
24
+ }
You can’t perform that action at this time.
0 commit comments