LeetCode #1413. Minimum Value to Get Positive Step by Step Sum

题目

1413. Minimum Value to Get Positive Step by Step Sum


解题方法

设置一个变量minsum = 10000,表示当前和的最小值,再设置一个cursum代表当前和,从左至右遍历数组并累加和,确定最小和minsum后根据minsum和1的关系返回即可。如果minsum>1就返回最小startValue:1,否则返回minsum的绝对值+1。
时间复杂度:O(n)
空间复杂度:O(1)


代码

class Solution:
    def minStartValue(self, nums: List[int]) -> int:
        minsum = 10000
        cursum = 0
        
        for i in nums:
            cursum += i
            minsum = min(minsum, cursum)
        
        return abs(minsum) + 1 if minsum < 1 else 1
posted @ 2020-12-01 15:51  老鼠司令  阅读(76)  评论(0编辑  收藏  举报