llllmz

导航

904. 水果成篮C

int totalFruit(int* fruits, int fruitsSize) {
    if(fruitsSize<=2) return fruitsSize;
    int a[2]={-1,-1};//蓝子空
    int max=0,n=1;
    int head=0, tail=0;//从head摘到tail
    a[0]=fruits[0];
    int fad=0,tad=0;
    while(head<=tail &&tail<fruitsSize){
        tail++;
        if(tail==fruitsSize) break;
        if(fruits[tail]==a[0]||fruits[tail]==a[1]){
            n++;
        }else if(a[1]==-1){
            tad=tail;
            a[1]=fruits[tail];
            n++;
        }else{
            head=tad;
            tail=tad;
            a[0]=fruits[head];
            a[1]=-1;
            n=1;
        }
        if(n>max) max=n;
    }
    return max;
}

结果:

posted on 2024-02-27 16:14  神奇的萝卜丝  阅读(16)  评论(0)    收藏  举报