--- title: '1413. Minimum Value to Get Positive Step by Step Sum' description: Given an array of integers nums, you start with an initial positive value startValue sidebar: label: 'Minimum Value to Get Positive Step by Step Sum' badge: 'Easy' --- Array ### Example 1: - Input: `nums = [-3,2,-3,4,2]` - Output: `5` - Explanation: If you choose `startValue = 4`, in the third iteration your step by step sum is less than `1`. ``` step by step sum startValue = 4 | startValue = 5 | nums (4 -3 ) = 1 | (5 -3 ) = 2 | -3 (1 +2 ) = 3 | (2 +2 ) = 4 | 2 (3 -3 ) = 0 | (4 -3 ) = 1 | -3 (0 +4 ) = 4 | (1 +4 ) = 5 | 4 (4 +2 ) = 6 | (5 +2 ) = 7 | 2 ``` ### Example 2: - Input: `nums = [1,2]` - Output: `1` - Explanation: Minimum start value should be positive. ### Example 3: - Input: `nums = [1,-2,-3]` - Output: `5` ### Constraints: - `1 <= nums.length <= 100` - `-100 <= nums[i] <= 100` ## Solution ```js /** * @param {number[]} nums * @return {number} */ var minStartValue = function(nums) { let prefix = [nums[0]]; // Make prefix sum start at 1 after initializing seed value for (let i = 1; i < nums.length; i++){ prefix.push(prefix[i - 1] + nums[i]); } let min = Math.min(...prefix); return Math.max(1, 1 - min); }; ```