class Solution {
public:
int b[1000006];//第一次出现i个黑色块时的位置
int tot=0;//目前有多少个黑色块
int ans=0;//记录答案
int solve(int n, int m, vector<int>& a) {
b[0]=-1;//初始化
for(int i=0;i<n;i++)
{
if(a[i]==0)
{
tot++;
b[tot]=i;
ans=max(ans,i-b[max(0,tot-m)]);//感谢 @Yuanirah 提出的错误
}
else{
ans=max(ans,i-b[max(0,tot-m)]);
}
}
return ans;
}
};
京公网安备 11010502036488号