https://leetcode.com/problems/maximum-average-subarray-i Easy

Решение

fun findMaxAverage(nums: IntArray, k: Int): Double {
    var sum = 0.0
    // Инициализируем сумму первых k элементов
    for (i in 0 until k) {
        sum += nums[i]
    }

    var maxSum = sum // Максимальная сумма на текущий момент

    // Сканируем массив, используя скользящее окно
    for (i in k until nums.size) {
        sum += nums[i] - nums[i - k] // Добавляем новый элемент и убираем старый
        if (sum > maxSum) {
            maxSum = sum // Обновляем максимальную сумму
        }
    }

    return maxSum / k // Возвращаем среднее значение
}