1838. 最高频元素的频数--题解
1838. 最高频元素的频数
元素的 频数 是该元素在一个数组中出现的次数。
给你一个整数数组 nums
和一个整数 k
。在一步操作中,你可以选择 nums
的一个下标,并将该下标对应元素的值增加 1
。
执行最多 k
次操作后,返回数组中最高频元素的 最大可能频数 。
示例 1:
1 | 输入:nums = [1,2,4], k = 5 |
示例 2:
1 | 输入:nums = [1,4,8,13], k = 5 |
示例 3:
1 | 输入:nums = [3,9,6], k = 2 |
提示:
1 <= nums.length <= 105
1 <= nums[i] <= 105
1 <= k <= 105
题解
总体思路采用滑动窗口的方式:
- 计算窗口内的差值,如果转变成最后一个值的变化数量小于 k 时,直接向后移动窗口
- 如果窗口的值大于 K 时,移动左侧指针,计算出最大值
1 | func maxFrequency(nums []int, k int) int { |
1838. 最高频元素的频数--题解