子数组最大平均数 I
给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。
请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。
任何误差小于 10-5 的答案都将被视为正确答案。
示例 1:
输入:nums = [1,12,-5,-6,50,3], k = 4
输出:12.75
解释:最大平均数 (12-5-6+50)/4 = 51/4 = 12.75
示例 2:
输入:nums = [5], k = 1
输出:5.00000
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/maximum-average-subarray-i
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public double findMaxAverage(int[] nums, int k) {
//滑动窗口
int max_ave = 0;
int temp = 0;
//模拟窗口指针
int start = k;
for(int i = 0;i < k ;i++){
max_ave = max_ave + nums[i];
}
temp = max_ave;
// return (double)temp;
while(start < nums.length){
//更新窗口中的值,加上右边数,减去左边数
temp = temp + nums[start] - nums[start-k];
//找到最大平均值
max_ave = Math.max(max_ave,temp);
start++;
}
return (double)max_ave/k;
}
}