Leetcode每日一题:最高频元素的频数(排序+前缀和+计数)
class Solution {
public:
int maxFrequency(vector<int>& nums, int k) {
int l = 0, res = 1;
typedef long long LL;
LL sum = 0;
sort(nums.begin(), nums.end());
for (int r = 1; r < nums.size(); r ++ )
{
sum += (LL)(nums[r] - nums[r - 1]) * (r - l);
while (sum > k) sum -= (nums[r] - nums[l ++ ]);
res = max(res, r - l + 1);
}
return res;
}
};
本文介绍了一种使用排序、前缀和与计数的方法来解决LeetCode中的问题——找到数组中出现频率最高的k个元素。通过排序数组,计算相邻元素之间的频数差,动态维护满足条件的子数组长度,最终得到最大长度。
429

被折叠的 条评论
为什么被折叠?



