Problem: 1838. 最高频元素的频数
哈希表,计数,频次,最后从后往前,累加,计算最小值
Code
class Solution { public: int maxFrequency(vector<int>& nums, int k) { vector<int> mp(100001, 0); for(int& i : nums) { mp[i]++; } vector<vector<int>> arr; for(int i = 0; i < 100001; i++) { if(mp[i] > 0) { arr.push_back({i, mp[i]}); } } int n = arr.size(), mx = arr[0][1], sub, tmp; for(int i = 1; i < n; i++) { int num = arr[i][1], a = arr[i][0], kk = k; for(int j = i - 1; j >= 0; j--) { sub = a - arr[j][0]; if(sub > kk) { break; } tmp = min((kk / sub), arr[j][1]); num += tmp; kk = kk - tmp * sub; } mx = max(mx, num); } return mx; } };