子数组最大平均数 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;
    }
}
posted @ 2023-05-11 20:18  网抑云黑胶SVIP用户  阅读(9)  评论(0编辑  收藏  举报