算法通关村第十六关|青铜|滑动窗口入门题

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;
}

如果对您有帮助,请点赞关注支持我,谢谢!❤
如有错误或者不足之处,敬请指正!❤
个人主页:星不易 ❤
算法通关村专栏:不易|算法通关村 ❤

你可能感兴趣的:(不易,算法通关村,算法,java,算法通关村)