原题地址(中等)
方法1—滑动窗口
思路
这题还蛮简单的其实。
就用滑动串口就好啦。
代码
class Solution {
public:
int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int X) {
int ans = 0, n = customers.size();
for(int i = 0; i < n; i++) {
if(i < X) ans += customers[i];
else if(grumpy[i] == 0) ans += customers[i];
}
int maxAns = ans;
for(int i = X; i < n; i++) {
if(grumpy[i - X] == 1) ans -= customers[i - X];
if(grumpy[i] == 1) ans += customers[i];
maxAns = max(maxAns, ans);
}
return maxAns;
}
};
时空复杂度
时间 空间