904. Fruit Into Baskets
题解
该题可以参照LeetCode 3,没有重复元素的最长子串。
用hash表存储滑动窗口内的元素和个数,然后控制滑动窗口内的元素为2个。
求出滑动窗口最大值。
代码
class Solution {
public:
int totalFruit(vector<int>& fruits) {
unordered_map<int, int> hash;
int ans = 0;
for (int i = 0, j = 0; i < fruits.size(); i ++) {
hash[fruits[i]] ++;
// cout << hash.size() << endl;
while (hash.size() >= 3) {
hash[fruits[j]] --;
if (hash[fruits[j]] == 0) {
hash.erase(fruits[j]);
}
j ++;
}
ans = max(ans, i - j + 1);
}
return ans;
}
};