😊博主目前也在学习,有错误欢迎指正😊
🌈保持热爱 奔赴星海🌈
给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。
你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。
请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue 。
class Solution {
public int minStartValue(int[] nums) {
}
}
(1)算出数组前缀和的最小值,如果最小值大于零, startValue 等于一即可,如果小于零,只需要让最小值加上 startValue 后变为一即可,所以 startValue 等于1- startValue 。
class Solution {
public int minStartValue(int[] nums) {
int startValue = nums[0];
for(int i = 1;i < nums.length;i++) {
nums[i] += nums[i - 1];
startValue = Math.min(startValue,nums[i]);
}
return startValue >0 ? 1:1 - startValue;
}
}
前缀和