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