LeetCode in Kotlin

2090. K Radius Subarray Averages

Medium

You are given a 0-indexed array nums of n integers, and an integer k.

The k-radius average for a subarray of nums centered at some index i with the radius k is the average of all elements in nums between the indices i - k and i + k (inclusive). If there are less than k elements before or after the index i, then the k-radius average is -1.

Build and return an array avgs of length n where avgs[i] is the k-radius average for the subarray centered at index i.

The average of x elements is the sum of the x elements divided by x, using integer division. The integer division truncates toward zero, which means losing its fractional part.

Example 1:

Input: nums = [7,4,3,9,1,8,5,2,6], k = 3

Output: [-1,-1,-1,5,4,4,-1,-1,-1]

Explanation:

Example 2:

Input: nums = [100000], k = 0

Output: [100000]

Explanation:

Example 3:

Input: nums = [8], k = 100000

Output: [-1]

Explanation:

Constraints:

Solution

class Solution {
    fun getAverages(nums: IntArray, k: Int): IntArray {
        // initialize result array with -1
        val res = IntArray(nums.size)
        res.fill(-1)
        if (nums.size <= k * 2) {
            // return if not enough elements
            return res
        }
        var sum: Long = 0
        val range = 2 * k + 1L
        // take sum of all elements from 0 to k*2 index
        for (i in 0..2 * k) {
            sum += nums[i].toLong()
        }
        // update first valid avg
        res[k] = (sum / range).toInt()
        // update other valid averages using sliding window
        for (i in k + 1 until nums.size - k) {
            sum = sum - nums[i - k - 1] + nums[i + k]
            res[i] = (sum / range).toInt()
        }
        return res
    }
}
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