首页 > 其他 > 详细

最高频的元素

时间:2021-07-19 14:24:13      阅读:8      评论:0      收藏:0      [点我收藏+]

题目链接: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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!