LeetCode in Kotlin

643. Maximum Average Subarray I

Easy

You are given an integer array nums consisting of n elements, and an integer k.

Find a contiguous subarray whose length is equal to k that has the maximum average value and return this value. Any answer with a calculation error less than 10-5 will be accepted.

Example 1:

Input: nums = [1,12,-5,-6,50,3], k = 4

Output: 12.75000

Explanation: Maximum average is (12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75

Example 2:

Input: nums = [5], k = 1

Output: 5.00000

Constraints:

Solution

class Solution {
    fun findMaxAverage(nums: IntArray, k: Int): Double {
        var windowSum = 0.0
        var windowStart = 0
        var max = Int.MIN_VALUE.toDouble()
        for (windowEnd in nums.indices) {
            windowSum += nums[windowEnd].toDouble()
            if (windowEnd >= k - 1) {
                val candidate = windowSum / k
                max = Math.max(candidate, max)
                windowSum -= nums[windowStart].toDouble()
                windowStart++
            }
        }
        return max
    }
}
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy