1052. 爱生气的书店老板
题目链接:1052. 爱生气的书店老板
代码如下:
//滑动窗口
//参考:leetcode官方题解
class Solution
{
public:
int maxSatisfied(vector<int>& customers, vector<int>& grumpy, int minutes)
{
int res=0;
//计算不生气时的满意客户
for(int i=0;i<customers.size();i++)
{
if(grumpy[i]==0) res+=customers[i];
}
//滑动窗口求生气时最多满意客户
int left=0,right=0;
int tmp=0,maxGrumpyCustomers=0;
while(right<customers.size())
{
if(grumpy[right]==1) tmp+=customers[right];
if(right-left>=minutes)
{
if(grumpy[left]==1) tmp-=customers[left];
left++;
}
right++;
maxGrumpyCustomers=max(maxGrumpyCustomers,tmp);
}
return res+maxGrumpyCustomers;
}
};