每日一题904. 水果成篮解法一:滑动窗口时间复杂度:O(n)空间复杂度:O(1)class Solution {public: int totalFruit(vector<int>& fruits) { int box1 = -1, box2 = -1, sz1 = 0, sz2 = 0, len = 0; for(int begin = 0, end = 0; end < fruits.size(); ) { //1.进窗口 if(sz1 == 0 || fruits[end] == box1) { sz1++; box1 = fruits[end++]; } else if(sz2 == 0 || fruits[end] == box2) { sz2++; box2 = fruits[end++]; } else { //2.判断 while(sz1 && sz2) { //3.出窗口 if(fruits[begin] == box1) sz1--; if(fruits[begin] == box2) sz2--; begin++; } } //4.更新 len = max(len, sz1 + sz2); } return len; }};