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;}};
