最高频元素的频数
题目描述:
元素的频数是该元素在一个数组中出现的次数。
给你一个整数数组nums和一个整数k。在一步操作中,你可以选择nums的一个下标,并将该下标对应的元素的值增加1。
执行最多k次操作后,返回数组中最高频元素的最大可能频数。
示例1:
输入:nums = [1, 2, 4],k=5
输出:3
解释:对第一个元素执行3次递增操作,对第二个元素执行2次递增操作,此时nums = [4, 4, 4]。4是数组中最高频元素,频数是3。
示例2:
输入:nums = [1, 4, 8, 13],k=5
输出:2
解释:存在多种最优解决方案:1、对第一个元素执行3次递增操作,此时nums=[4, 4, 8, 13]。4是数组中最高频的元素,频数是2。2、对第二个元素执行4次递增操作,此时nums=[1, 8, 8, 13]。8是数组中最高频的元素,频数是2。3、对第三个元素执行5次递增操作,此时nums=[1, 4, 13, 13]。13是数组中最高频元素,频数是2。
示例3:
输入:nums = [3, 9, 6],k=2
输出:1
提示:
1 <= nums.length <= 10^5
1 <= nums[i] <= 10^5
1 <= k <= 10^5
思路:排序+滑动窗口
python代码:
class Solution:
def maxFrequency(self, nums: List[int], k: int) -> int:
nums.sort()
i = j = 0
for j, num in enumerate(nums):
k += num
if k < num * (j - i + 1):
k -= nums[i]
i += 1
return j - i + 1