1.子数组最大平均数(窗口大小不变)
原题:力扣643.
这个滑动窗口很典。
public double findMaxAverage(int[] nums, int k) {
int len = nums.length;
int windowSum = 0;
if (k > nums.length || nums.length < 1 || k < 1) {
return 0;
}
// 先求第一个窗口的和
for (int i = 0; i < k; i++) {
windowSum += nums[i];
}
// 开始移动窗口
int res = windowSum;
for (int right = k; right < len; right++) {
windowSum += nums[right] - nums[right - k];
res = Math.max(res, windowSum);
}
return (double) res / k;
}
2.最长连续递增序列(窗口大小改变)
原题:力扣674.
这个窗口滑动的不够丝滑。
public int findLengthOfLCIS(int[] nums) {
int left = 0, right = 0;
int res = 0;
while (right < nums.length) {
if (right > 0 && nums[right - 1] >= nums[right]) {
left = right;
}
right++;
res = Math.res(res, right - left);
}
return res;
}
如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤