1052. Grumpy Bookstore Owner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class Solution {
public int maxSatisfied(int[] customers, int[] grumpy, int minutes) {
int sum = 0;
for (int i = 0; i < customers.length; i++) {
if (grumpy[i] == 0) {
sum += customers[i];
}
}

int maxSuppression = 0;
int suppression = 0;
int i = 0;
for (int j = 0; j < customers.length; j++) {
if (grumpy[j] == 1) {
suppression += customers[j];
}

while (j - i + 1 > minutes) {
if (grumpy[i] == 1) {
suppression -= customers[i];
}
i++;
}

if (j - i + 1 == minutes) {
maxSuppression = Math.max(maxSuppression, suppression);
}
}

return sum + maxSuppression;
}
}

References

1052. Grumpy Bookstore Owner