力扣1838.最高频的元素的频数
题目

题目解析及思路
题目要求返回在k次+1操作后的最大频数
-
首先排序 然后右指针遍历补成的数
- 每次加差值** (num[i] - num[i-1]) **位数(i - j)
代码
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;
}
};

1万+

被折叠的 条评论
为什么被折叠?



