LeetCode in Kotlin

3255. Find the Power of K-Size Subarrays II

Medium

You are given an array of integers nums of length n and a positive integer k.

The power of an array is defined as:

You need to find the power of all subarrays of nums of size k.

Return an integer array results of size n - k + 1, where results[i] is the power of nums[i..(i + k - 1)].

Example 1:

Input: nums = [1,2,3,4,3,2,5], k = 3

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

Explanation:

There are 5 subarrays of nums of size 3:

Example 2:

Input: nums = [2,2,2,2,2], k = 4

Output: [-1,-1]

Example 3:

Input: nums = [3,2,3,2,3,2], k = 2

Output: [-1,3,-1,3,-1]

Constraints:

Solution

class Solution {
    fun resultsArray(nums: IntArray, k: Int): IntArray {
        if (k == 1) {
            return nums
        }
        var start = 0
        val n = nums.size
        val output = IntArray(n - k + 1)
        for (i in 1 until n) {
            if (nums[i] != nums[i - 1] + 1) {
                start = i
            }
            val index = i - k + 1
            if (index >= 0) {
                if (start > index) {
                    output[index] = -1
                } else {
                    output[index] = nums[i]
                }
            }
        }
        return output
    }
}