Untitled
unknown
plain_text
10 months ago
1.4 kB
4
Indexable
//Approach-2 (Using sliding window)
//T.C : O(nlogn)
//S.C : O(1)
public class Solution {
public int maxFrequency(int[] nums, int k) {
Arrays.sort(nums);
int n = nums.length;
int result = 0;
int i = 0;
long currSum = 0;
for (int j = 0; j < n; j++) {
long target = nums[j];
currSum += nums[j];
while ((j - i + 1) * target - currSum > k) {
currSum -= nums[i];
i++;
}
result = Math.max(result, j - i + 1);
}
return result;
}
}
//Approach-3 (Improved sliding window)
//T.C : O(nlogn)
//S.C : O(1)
public class Solution {
public int maxFrequency(int[] nums, int k) {
Arrays.sort(nums);
int n = nums.length;
int result = 0;
int i = 0;
long currSum = 0;
for (int j = 0; j < n; j++) {
long target = nums[j];
currSum += nums[j];
if ((j - i + 1) * target - currSum > k) {
currSum -= nums[i];
i++;
}
result = Math.max(result, j - i + 1);
}
return result;
}
}Editor is loading...
Leave a Comment