class Solution {
public:
int totalFruit(vector<int>& fruits) {
int left=0;
int length=fruits.size();
map<int,int> mpt;
int ans=0;
for(int right=0;right<fruits.size();right++){
mpt[fruits[right]]++;
while(mpt.size()>2){
auto it=mpt.find(fruits[left]);
it->second--;
if(it->second==0){
mpt.erase(it);
}
++left;
}
ans=max(ans,right-left+1);
}
return ans;
}
};