Maximum Average Subarray I

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

Example:

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

Approach:

C++

#include <bits/stdc++.h>
using namespace std;

double findMaxAverage(vector<int&numsint k)
{
    double maxAns = INT_MIN;
    double sum = 0;
    for (int i = 0i < ki++)
    {
        sum += nums[i];
    }
    maxAns = max(maxAnssum / k);
    for (int i = ki < nums.size(); i++)
    {
        sum += nums[i];
        sum -= nums[i - k];
        maxAns = max(maxAnssum / k);
    }
    return maxAns;
}

int main()
{
     vector<intnums={1,12,-5,-6,50,3};
     int  k = 4;

     cout<<findMaxAverage(nums,k);

     return 0;
}


No comments:

Post a Comment