Logo

[LeetCode] 1413. Minimum Value to Get Positive Step by Step Sum

[LeetCode] 1413. Minimum Value to Get Positive Step by Step Sum の解答と解説

問題

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

解答と解説

class Solution:
    def minStartValue(self, nums: List[int]) -> int:
        minSum, curSum = float("inf"), 0
        for n in nums:
            curSum += n
            minSum = min(minSum, curSum)
        
        return 1 if minSum >= 0 else abs(minSum) + 1

numsの要素数をnとした時、

  • Time Complexity: O(n)
  • Space Complexity: O(1)

startValue = stepSumの最小値の絶対値 + 1と考えれば良い。stepSumの最小値が0以上であればstartValueの最小値は1になるのでその点は注意する。