题目链接:https://leetcode-cn.com/problems/frequency-of-the-most-frequent-element/
题目描述:
给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。
执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。
class Solution {
public:
int maxFrequency(vector<int>& nums, int k) {
sort(nums.begin(), nums.end());
int left = 0;
int right = 1;
int ans = 1;
long long sum = 0;
for(; right < nums.size(); right++)
{
sum += (long long)(nums[right] - nums[right - 1]) * (right - left);
while(sum > k) //窗口缩小
{
sum -= nums[right] - nums[left];
left++;
}
ans = max(ans, right - left + 1);
}
return ans;
}
};