- 這一題是求 maxcnt 而不是求 window size
- condition 是
window_size - maxcnt > k
- 接著套不定長 sliding window。
class Solution {
public:
int longestEqualSubarray(vector<int>& nums, int k) {
int res = 0, left = 0, right = 0, n = nums.size();
int maxcnt = 0;
unordered_map<int,int> cnt;
while (right < n) {
int num = nums[right++];
maxcnt = max(maxcnt, ++cnt[num]);
while (right-left-maxcnt > k) cnt[nums[left++]]--;
res = max(res, maxcnt);
}
return res;
}
};