Leetcode Note: Go - Maximum Average Subarray I

Maximum Average Subarray I - LeetCode
https://leetcode.com/problems/maximum-average-subarray-i/

  • Go 言語で取り組んだメモ

所感

  • int 配列 nums から k 個の要素を取り出して平均値を計算し、その中で最大値を float64 で return する

回答

Maximum Average Subarray I - LeetCode
https://leetcode.com/problems/maximum-average-subarray-i/solution/

func findMaxAverage(nums []int, k int) float64 {
    sum := 0.0
    for i := 0; i < k; i++ {
        sum += float64(nums[i])
    }
    
    res := sum
    for i := k; i < len(nums); i++ {
        sum += float64(nums[i]) - float64(nums[i-k])
        res = math.Max(res, sum)
    }

    return res/float64(k)
}
  • Sliding Window
  • k を使ってループを行い、都度最大値を更新して、最終的には最大値を k で除算して return を行う