904. 水果成篮c
int totalFruit(int* fruits, int fruitsSize) {
int lanzi[2]={-1,-1};
if(fruitsSize<=2) return fruitsSize;
int max=0,count=0;
int head=0,tail=0;
while(tail<fruitsSize){
int i=0;
for(;i<2;i++){
if(lanzi[i]==-1 || lanzi[i]==fruits[tail] ){
lanzi[i]=fruits[tail++];
count++;
if(count>max) max=count;
break;
}
}
if(i==2){
tail--;
if(lanzi[0]!=fruits[tail]) {
lanzi[0]=-1;
}else{
lanzi[1]=-1;
}
while(tail>0 && fruits[tail]==fruits[tail-1]) tail--;
head=tail;
count=0;
}
}
return max;
}
浙公网安备 33010602011771号