class Solution {
public:
int totalFruit(vector<int>& fruits)
{
int n = fruits.size();
int hash[100001] = { 0 };
int len = 0;
for(int left = 0,right = 0,kinds = 0;right < n;right++)
{
if(hash[fruits[right]] == 0)
{
kinds++;
}
hash[fruits[right]]++;
while(kinds > 2)
{
hash[fruits[left]]--;
if(hash[fruits[left]] == 0)
{
kinds--;
}
left++;
}
len = max(len,right - left + 1);
}
return len;
}
};