643. Maximum Average Subarray I 笔记

Given an array consisting of n integers, find the contiguous subarray of given length k that has the maximum average value. And you need to output the maximum average value.
Example 1:

Input: [1,12,-5,-6,50,3], k = 4
Output: 12.75
Explanation: Maximum average is (12-5-6+50)/4 = 51/4 = 12.75

遍历数组,记录和的最大值。
代码如下:

class Solution {
public:
    double findMaxAverage(vector& nums, int k) {
        long max = 0;
        long sum = 0;
        for(int i = 0; i < k; i++)
        {
            sum += nums[i];
        }
        max = sum;
        for(int i = k; i < nums.size(); i++)
        {
            sum += nums[i];
            sum -= nums[i - k];
            if(sum > max)
                max = sum;
        }
        return (double)max / k;
    }
};

你可能感兴趣的:(643. Maximum Average Subarray I 笔记)