2024/10/27 灵茶题单 不定长滑动窗口
This commit is contained in:
parent
89f34adbdc
commit
faeab03adb
|
@ -0,0 +1,42 @@
|
|||
package com.cool.ling_cha_mount.sliding_windows;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* Created with IntelliJ IDEA.
|
||||
*
|
||||
* @Author: Cool
|
||||
* @Date: 2024/10/27/22:48
|
||||
* @Description:
|
||||
*/
|
||||
public class Num1838 {
|
||||
public int maxFrequency(int[] nums, int k) {
|
||||
Arrays.sort(nums);
|
||||
long l= k;
|
||||
long left = 0;
|
||||
long res = 1;
|
||||
for (int i = 1; i < nums.length; i++) {
|
||||
l -=(nums[i] - nums[i - 1]) *(i - left);
|
||||
while (l < 0) {
|
||||
l += nums[i] - nums[(int)left++];
|
||||
}
|
||||
res = Math.max(res, i - left + 1);
|
||||
}
|
||||
return (int)res;
|
||||
}
|
||||
|
||||
public int maxFrequency1(int[] nums, int k) {
|
||||
Arrays.sort(nums);
|
||||
int left = 0, res = 1;
|
||||
long total = 0;
|
||||
for (int i = 0; i < nums.length; i++) {
|
||||
total += nums[i];
|
||||
while ((long) nums[i] * (i - left + 1) - total > k) {
|
||||
total -= nums[left];
|
||||
left++;
|
||||
}
|
||||
res = Math.max(res, i - left + 1);
|
||||
}
|
||||
return res;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue