1413. Minimum Value to Get Positive Step by Step Sum
1413. Minimum Value to Get Positive Step by Step Sum
題目的問題是給定一個陣列,希望我們找到一個數字,從這個數字開始,一步一步的把每個元素加起來,並且檢視每一步的結果,我們希望得出每一步的結果都是正整數,這個數字可以有很多可能,我們想要求的是這個數字的最小值是多少?
這個有一點像是數學問題,思考的方向是我們其實要處理的地方在於在整個累加的過程中,出現的最小值是多少就好?例如如果最小值是 -9
代表的是我們至少要加 10
就可以確保所有的數字都是正的了。
class Solution:
def minStartValue(self, nums: List[int]) -> int:
prefix = [nums[0]]
for i in range(1, len(nums)):
prefix.append(nums[i] + prefix[i - 1])
target = min(prefix)
if target >= 0:
return 1
else:
return abs(target) + 1