https://leetcode.cn/problems/fruit-into-baskets/description/
思路
使用哈希表存储这个窗口内的数以及出现的次数,因为我们想每次保证最多只有两个不同的数
code
class Solution {
public:
int totalFruit(vector<int>& fruits) {
int n = fruits.size();
unordered_map<int,int> mp;
int MaxSum=0;
int start =0, end =0;
while(end<n){
mp[fruits[end]]++;
while(mp.size()>2){
auto it = mp.find(fruits[start]);
--it->second;
if(it->second==0) mp.erase(it);
++start;
}
MaxSum =MaxSum>(end-start+1)?MaxSum:(end-start+1);
++end;
}
return MaxSum;
}
};