- 這題同樣是經典的 sliding window,經排序過後,我們可以透過
len * max_element_in_window - accumulate_in_window
的方式來求 token need, - 接著套不定長 sliding window。
class Solution {
public:
int maxFrequency(vector<int>& nums, int k) {
sort(nums.begin(), nums.end());
int left = 0, right = 0, res = 0, n = nums.size();
long long curr = 0;
while (right < n) {
int num = nums[right++];
curr += num;
while ((long long)(right-left) * num - curr > k) {
curr -= nums[left++];
}
res = max(res, right-left);
}
return res;
}
};