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;
}