Fruit Into Baskets LeetCode solution in C++
1class Solution {2public:3int totalFruit(vector<int> &fruits) {4int i = 0, j = 0, ans = 1;5unordered_map<int, int> mp;6while (j < fruits.size()) {7mp[fruits[j]]++;89if (mp.size() < 2) {10ans = max(ans, j - i + 1);11j++;12} else if (mp.size() == 2) {13ans = max(ans, j - i + 1);14j++;15} else if (mp.size() > 2) {16while (mp.size() > 2) {17mp[fruits[i]]--;18if (mp[fruits[i]] == 0) mp.erase(fruits[i]);19i++;20}21if (mp.size() == 2) {22ans = max(ans, j - i + 1);23}24j++;25}26}27return ans;28}29};