LeetCode in Kotlin

3254. Find the Power of K-Size Subarrays I

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 {
        val n = nums.size
        val arr = IntArray(n - k + 1)
        var count = 0
        for (i in 1 until k) {
            if (nums[i] == nums[i - 1] + 1) {
                count++
            }
        }
        arr[0] = if ((count == k - 1)) nums[k - 1] else -1
        for (i in 1..n - k) {
            if (nums[i] == nums[i - 1] + 1) {
                count--
            }
            if (nums[i + k - 1] == nums[i + k - 2] + 1) {
                count++
            }
            arr[i] = if ((count == k - 1)) nums[i + k - 1] else -1
        }
        return arr
    }
}