最高频的元素

题目链接:https://leetcode-cn.com/problems/frequency-of-the-most-frequent-element/
题目描述:
给你一个整数数组 nums 和一个整数 k 。在一步操作中,你可以选择 nums 的一个下标,并将该下标对应元素的值增加 1 。
执行最多 k 次操作后,返回数组中最高频元素的 最大可能频数 。

题解:
最高频元素的频数题解(滑动窗口法)

class Solution {
public:
    int maxFrequency(vector<int>& nums, int k) {
        sort(nums.begin(), nums.end());
        int left = 0;
        int right = 1;
        int ans = 1;
        long long sum = 0;
        for(; right < nums.size(); right++)
        {
            sum += (long long)(nums[right] - nums[right - 1]) * (right - left);
            while(sum > k)      //窗口缩小
            {
                sum -= nums[right] - nums[left];
                left++;
            }
            ans = max(ans, right - left + 1);

        }
        return ans;
    }
};

原文地址:https://www.cnblogs.com/ZigHello/p/15029650.html