跳到主要内容

1838.最高频元素的频数

链接:1838.最高频元素的频数
难度:Medium
标签:贪心、数组、二分查找、前缀和、排序、滑动窗口
简介:排序后,从后往前逐个比较。

题解 1 - typescript

  • 编辑时间:2021-07-19
  • 执行用时:232ms
  • 内存消耗:54MB
  • 编程语言:typescript
  • 解法介绍:前缀和。
function maxFrequency(nums: number[], k: number): number {
nums.sort((a, b) => a - b);
const len = nums.length;
let ans = 1;
let right = len - 1;
let left = right - 1;
while (left >= 0) {
const num = nums[right];
while (left >= 0) {
const v = num - nums[left];
if (k < v) break;
k -= v;
left--;
}
ans = Math.max(ans, right-- - left);
k += (right - left) * (nums[right + 1] - nums[right]);
}
return ans;
}