思路:固定滑动窗口
具体:窗口内维护:窗口内可增加的顾客数
class Solution {
public:
int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int minutes) {
int n = customers.size();
int sums = 0;
for (int i = 0; i < n; ++i) {
if (grumpy[i] == 0) sums += customers[i];
}
int ans = 0, sum = 0, l = 0;
for (int r = 0; r < n; ++r) {
if (r >= minutes) {
if (grumpy[l] == 1) sum -= customers[l];
l++;
}
if (grumpy[r] == 1) sum += customers[r];
ans = max(ans, sum);
}
return sums + ans;
}
};