Найти максимальное среднее подмассива

Найти максимальное среднее подмассива

https://t.me/Golang_google

Сложность: Easy

Условие задачи: Дан целочисленный массив nums, состоящий из n элементов и целого числа k.

Найдите непрерывный подмассив, длина которого равна k, который имеет максимальное среднее значение, и верните это значение. Будет принят любой ответ с ошибкой вычисления менее 10-5.

Пример:

Ввод: nums = [1,12,-5,-6,50,3], k = 4

Вывод: 12.75000

Объяснение:

Ввод: nums = [5], k = 1

Вывод: 5.00000

func findMaxAverage(nums []int, k int) float64 {
    left, sum, res := int(0), float64(0), float64(-1<<63)
    
    for right := 0; right < len(nums); right++ {
        if right-left+1 < k {
            sum += float64(nums[right])
            continue
        }
        
        sum += float64(nums[right])
        
        for right-left+1 > k {
            sum -= float64(nums[left])
            left++
        }
        
        if sum/float64(k) > res {
            res = sum/float64(k)
        }
    }
    
    return res
}



Report Page