LeetCode in Kotlin

3356. Zero Array Transformation II

Medium

You are given an integer array nums of length n and a 2D array queries where queries[i] = [li, ri, vali].

Each queries[i] represents the following action on nums:

A Zero Array is an array with all its elements equal to 0.

Return the minimum possible non-negative value of k, such that after processing the first k queries in sequence, nums becomes a Zero Array. If no such k exists, return -1.

Example 1:

Input: nums = [2,0,2], queries = [[0,2,1],[0,2,1],[1,1,3]]

Output: 2

Explanation:

Example 2:

Input: nums = [4,3,2,1], queries = [[1,3,2],[0,2,1]]

Output: -1

Explanation:

Constraints:

Solution

class Solution {
    fun minZeroArray(nums: IntArray, queries: Array<IntArray>): Int {
        val diff = IntArray(nums.size)
        var idx = 0
        var d = 0
        for (i in nums.indices) {
            d += diff[i]
            while (nums[i] + d > 0 && idx < queries.size) {
                val q = queries[idx]
                if (i >= q[0] && i <= q[1]) {
                    d -= q[2]
                }
                diff[q[0]] -= q[2]
                if (q[1] + 1 < nums.size) {
                    diff[q[1] + 1] += q[2]
                }
                idx++
            }
            if (nums[i] + d > 0) {
                return -1
            }
        }
        return idx
    }
}
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