Longest Well-Performing Interval LeetCode solution in C++
1class Solution {2public:3int longestWPI(vector<int> &hours) {4int n = hours.size();5int ans = 0;6int ct = 0;7unordered_map<int, int> m;8for (int i = 0; i < n; ++i) {9if (hours[i] > 8)10ct++;11else12ct--;13if (ct > 0)14ans = max(ans, i + 1);15else {16if (m.find(ct) == m.end()) m[ct] = i;17if (m.find(ct - 1) != m.end()) ans = max(ans, i - m[ct - 1]);18}19}20return ans;21}22};