如题
有可能是因为O(n^2)的时间复杂度,但是身为蒟蒻的我已经想不出其它方法了(悲)
#include<cstdio>
int people,sum,maxlen=0;
int gender[100010];
int main(){
scanf("%d",&people);
for(int i=1;i<=people;i++)
scanf("%d",&gender[i]);
for(int j=1;j<=people;j++){
for(int k=j;k<=people;k++){
if((k-j+1)%2==1){continue;}
for(int l=j;l<=k;l++){sum+=gender[l];}
if(sum*2==k-j+1){
if(k-j+1>maxlen)
maxlen=k-j+1;
}
sum=0;
}
}
printf("%d",maxlen);
return 0;
}
有没有一些更好的算法,哪位大佬分享一下