原题
https://leetcode-cn.com/problems/maximum-average-subarray-i/

思路
滑动窗口,窗口在滑动的过程中找出最大值
题解
package com.leetcode.code;
/**
* @ClassName Code643
* @Author ZK
* @Description
* @Date 2021/2/4 9:43
* @Version 1.0
**/
public class Code643 {
public static void main(String[] args) {
int[] nums = {1,12,-5,-6,50,3};
double res = findMaxAverage(nums, 4);
System.out.println(res);
}
public static double findMaxAverage(int[] nums, int k) {
int len = nums.length;
int sum = 0;
for (int i = 0; i < k; i++) {
sum += nums[i];
}
int max = sum;
for (int i = 1; i <= len-k; i++) {
sum = sum-nums[i-1] + nums[i+k-1];
max = Math.max(sum, max);
}
return 1.0*max/k;
}
}
本文介绍了如何使用滑动窗口技巧解决LeetCode题目643,通过计算连续子数组的最大和并求其平均值,找到给定数组中长度为k的最大平均子数组。关键步骤包括初始化窗口、更新窗口和求最大平均值。
236

被折叠的 条评论
为什么被折叠?



