https://leetcode.com/problems/minimum-value-to-get-positive-step-by-step-sum/description/ Easy

Условие

Дан массив целых чисел nums. Необходимо найти минимальное положительное число startValue, такое что, начиная с него и прибавляя элементы массива по порядку, сумма на каждом шаге остается положительной (больше 0). Вернуть это минимальное startValue.

Решение

class Solution {
    fun minStartValue(nums: IntArray): Int {
        var minSum = 0
        var currentSum = 0
        for (num in nums) {
            currentSum += num
            minSum = minOf(minSum, currentSum)
        }
        return maxOf(1, 1 - minSum)
    }
}