Даны целочисленный массив nums
, состоящий из n
элементов и целое число k
.
Найдите непрерывный подмассив, длина которого равна k
, который имеет максимальное среднее значение, и верните значение среднего. Будет принят любой ответ с ошибкой вычисления менее 10^(-5).
Входные данные: nums = [1,12,-5,-6,50,3], k = 4
Результат: 12.75000
Пояснение: Максимальное среднее значение составляет (12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75
Входные данные: nums = [5], k = 1
Результат: 5.00000
class Solution {
public:
double findMaxAverage(vector<int>& nums, int k) {
int max = INT_MIN, j = 0, sum = 0, len = nums.size();
double avg = 0;
for(int i = 0; i < len; i++) {
sum += nums[i];
if(i >= k-1) {
if(sum > max) {
max = sum;
}
sum -= nums[j]; // убираем из суммы начальный элемент
j++;
}
}
avg = max * 1.0 / k;
return avg;
}
};