自学内容网 自学内容网

LeetCode 643.子数组最大平均数 I

题目

给你一个由 n 个元素组成的整数数组 nums 和一个整数 k 。

请你找出平均数最大且 长度为 k 的连续子数组,并输出该最大平均数。

任何误差小于 10-5 的答案都将被视为正确答案。

思路:定长滑动窗口  入  更新  出

代码

class Solution {
    public double findMaxAverage(int[] nums, int k) {
        int n = nums.length;
        double ans = Integer.MIN_VALUE;
        double sum = 0.0;
        double mid_result = 0.0;
        for (int i = 0; i < n; i++) {
            // 入
            sum += nums[i];
            if (i < k - 1)
                continue;
            mid_result = sum / k;
            // 更新
            ans = Math.max(ans, mid_result);
            // 出
            sum -= nums[i - k + 1];
        }
        return ans;
    }
}

性能

时间复杂度o(n)

空间复杂度o(1)


原文地址:https://blog.csdn.net/qq_57349657/article/details/143081933

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!