LeetCode 904. 水果成籃 (雙指針 || 滑動窗口)

水果成籃

class Solution {
public:
    int totalFruit(vector<int>& a) {
        int ans = 1 , n = a.size();
        int l=0,r = l+1,lr =l;
        while(l<n) {
            int x1 = a[l],x2 = -1;
            while(r<n && (x2==-1 || a[r]==x1 || a[r]==x2) ){
                if(a[r]!=x1 && x2==-1){
                    x2 = a[r];
                }
                if(a[r] != a[lr]){
                    lr = r;
                }
                r++;
            }
            ans = max(ans,r-l);
            if(r==n){
                break;
            }
            l = lr;
        }
        return ans;
    }
};
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章