• 難度分: 1418
  • 定長度的 sliding window,秒殺
class Solution {
public:
    int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int k) {
        int n = customers.size();
        int sum = 0;
        for (int i = 0; i < n; i++) {
            if (!grumpy[i]) {
                sum += customers[i];
                customers[i] = 0;
            }
        }
        for (int i = 0; i < k; i++) {
            sum += customers[i];
        }
        int res = sum;
        for (int i = k; i < n; i++) {
            sum += (customers[i] - customers[i-k]);
            res = max(res, sum);
        }
        return res;
    }
};