力扣1838.最高频的元素的频数
-
首先排序 然后右指针遍历补成的数
- 每次加**差值(num[i] - num[i-1]) * 位数(i - j)
cpp
class Solution {
public:
int maxFrequency(vector<int>& nums, int k) {
int res=1,n = nums.size();
sort(nums.begin(),nums.end());
long long ans=0;
for(int i=1,j=0;i<n;i++)
{
ans += (long long)(nums[i] - nums[i-1])*(i-j);
while(ans > k)
{
ans -= (nums[i] - nums[j]);
j ++;
}
res = max(res,i-j+1);
}
return res;
}
};