
- C++ Basics
- C++ Home
- C++ Overview
- C++ Environment Setup
- C++ Basic Syntax
- C++ Comments
- C++ Data Types
- C++ Variable Types
- C++ Variable Scope
- C++ Constants/Literals
- C++ Modifier Types
- C++ Storage Classes
- C++ Operators
- C++ Loop Types
- C++ Decision Making
- C++ Functions
- C++ Numbers
- C++ Arrays
- C++ Strings
- C++ Pointers
- C++ References
- C++ Date & Time
- C++ Basic Input/Output
- C++ Data Structures
- C++ Object Oriented
- C++ Classes & Objects
- C++ Inheritance
- C++ Overloading
- C++ Polymorphism
- C++ Abstraction
- C++ Encapsulation
- C++ Interfaces
Find maximum average subarray of k length in C++
In this problem, we are given an array arr[] of size n consisting of positive and negative values and an integer k. Our task is to find the maximum average subarray of k length.
Let’s take an example to understand the problem,
Input: arr[] = {4, -1, 5, 6, -2, 4} k = 3
Output: 10
Explanation:
The subarray of size 3 with max sum is -1, 5, 6 = 10
Solution Approach
A solution to the problem is done by using an auxiliary array to store cumulative sum till the current index in the array.
To find the sum of subarrays, we need to compute the difference between the indices of the positions of the subarray.
Program to illustrate the working of our solution,
Example
#include<bits/stdc++.h> using namespace std; int findMaxSubArrayAverage(int arr[], int n, int k) { if (k > n) return -1; int *auxSumArray = new int[n]; auxSumArray[0] = arr[0]; for (int i=1; i<n; i++) auxSumArray[i] = auxSumArray[i-1] + arr[i]; int maxSum = auxSumArray[k-1], subEndIndex = k-1; for (int i=k; i<n; i++) { int sumVal = auxSumArray[i] - auxSumArray[i-k]; if (sumVal > maxSum) { maxSum = sumVal; subEndIndex = i; } } return subEndIndex - k + 1; } int main() { int arr[] = {4, -1, 5, 6, -2, 4}; int k = 3; int n = sizeof(arr)/sizeof(arr[0]); cout<<"The maximum average subarray of length "<<k<<" begins at index "<<findMaxSubArrayAverage(arr, n, k); return 0; }
Output
The maximum average subarray of length 3 begins at index 1
- Related Articles
- Maximum average of a specific length of subarray in JavaScript
- Maximum Average Subarray I in C++
- Maximum Average Subarray II in C++
- C++ program to find maximum of each k sized contiguous subarray
- Finding maximum length of common subarray in JavaScript
- Find maximum (or minimum) sum of a subarray of size k in C++
- Program to find maximum length of subarray with positive product in Python
- Program to find maximum length of k ribbons of same length in Python
- Maximum Size Subarray Sum Equals k in C++
- Maximum length of subarray such that sum of the subarray is even in C++
- Maximum Unique Element in every subarray of size K in c++
- Python – Sort Matrix by K Sized Subarray Maximum Sum
- Maximum length subarray with LCM equal to product in C++
- Maximum average of a subarray of size of at least X and at most Y in C++
- Maximum subarray sum by flipping signs of at most K array elements in C++

Advertisements