思路:最大连续子数组->slide windows
具体思路:slide window始终维护两种水果
class Solution {
public:
int totalFruit(vector<int>& fruits) {
int n = fruits.size();
int l = 0, ans = 0;
unordered_map<int, int> hash;
for (int r = 0; r < n; ++r) {
hash[fruits[r]]++;
if (hash.size() > 2) {
if (--hash[fruits[l]] == 0) hash.erase(fruits[l]);
l++;
}
ans = max(ans, r - l + 1);
}
return ans;
}
};