Fruit Into Baskets LeetCode solution in C++

1
class Solution {
2
public:
3
int totalFruit(vector<int> &fruits) {
4
int i = 0, j = 0, ans = 1;
5
unordered_map<int, int> mp;
6
while (j < fruits.size()) {
7
mp[fruits[j]]++;
8

9
if (mp.size() < 2) {
10
ans = max(ans, j - i + 1);
11
j++;
12
} else if (mp.size() == 2) {
13
ans = max(ans, j - i + 1);
14
j++;
15
} else if (mp.size() > 2) {
16
while (mp.size() > 2) {
17
mp[fruits[i]]--;
18
if (mp[fruits[i]] == 0) mp.erase(fruits[i]);
19
i++;
20
}
21
if (mp.size() == 2) {
22
ans = max(ans, j - i + 1);
23
}
24
j++;
25
}
26
}
27
return ans;
28
}
29
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0