【发布时间】:2021-02-10 07:54:54
【问题描述】:
这个问题来自leetcode。我的输出是正确的,并且通过了 123 / 123 个测试用例,但花费的时间太长。你能帮我改进我拥有的相同代码吗?
问题: 给定一个由 n 个整数组成的数组,找到给定长度 k 且具有最大平均值的连续子数组。并且你需要输出最大的平均值。
示例 1:
输入:[1,12,-5,-6,50,3],k = 4 输出:12.75 解释:最大平均值为 (12-5-6+50)/4 = 51/4 = 12.75
class Solution {
public double findMaxAverage(int[] nums, int k) {
int i = 0;
int j = 0;
double max = Integer.MIN_VALUE;
while(i+k <= nums.length){
double sum = 0;
while(i < k + j){
sum += nums[i];
i++;
}
max = Math.max(max, sum);
j++;
i = j;
}
return max/k;
}
}
【问题讨论】:
标签: arrays max average sub-array