Frequency of the Most Frequent Element

MediumArrayBinary SearchGreedySliding WindowSortingPrefix Sum

Solution

export function maxFrequency(nums: number[], k: number): number {
  nums.sort((a, b) => a - b);
 
  let answer = 0;
  let [start, rangeSum] = [0, 0];
  for (let end = 0; end < nums.length; end++) {
    const num = nums[end];
    rangeSum += num;
    while (k < num * (end - start + 1) - rangeSum) {
      rangeSum -= nums[start];
      start += 1;
    }
    answer = Math.max(answer, end - start + 1);
  }
 
  return answer;
}