1413. Minimum Value to Get Positive Step by Step Sum

Given an array of integers nums, you start with an initial positive value startValue .

In each iteration, you calculate the step by step sum of startValue plus elements in nums (from left to right).

Return the minimum positive value of startValue such that the step by step sum is never less than 1.

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

这道题说是从一个startValue开始,从左往右加数组里的数字,要保证每次加完这个值都不小于1。翻译过来就是,求这个数组的prefix sum最小的那个数,如果最小的就不小于1,那就return最小的startValue which is 1,如果最小的小于1,那就return (-sum) + 1

复制代码
class Solution {
    public int minStartValue(int[] nums) {
        int min = Integer.MAX_VALUE;
        int sum = 0;
        for (int num : nums) {
            sum += num;
            min = Math.min(min, sum);
        }
        return min >= 1 ? 1 : 1 - min;
    }
}
相关推荐
CoovallyAIHub13 分钟前
YOLOVision 2025 官宣日期!大会议程暗藏 YOLOv14 发布信号?
深度学习·算法·计算机视觉
·白小白23 分钟前
【数据结构】——顺序表链表(超详细解析!!!)
数据结构·链表
想不明白的过度思考者27 分钟前
初识数据结构——优先级队列(堆!堆!堆!)
数据结构
CoovallyAIHub39 分钟前
基于CNN与Transformer的无人机应急救援网络异常流量检测
深度学习·算法·计算机视觉
Shun_Tianyou1 小时前
Python Day28 HTML 与 CSS 核心知识点 及例题分析
开发语言·前端·css·python·算法·html
啊阿狸不会拉杆1 小时前
《算法导论》第 18 章 - B 树
数据结构·c++·b树·算法·排序算法
( ̄▽ ̄).1 小时前
C++联合体的定义
前端·c++·算法
再睡一夏就好2 小时前
【排序算法】⑦归并排序
c语言·数据结构·算法·排序算法·学习笔记
项目申报小狂人2 小时前
2025年中科院2区红杉优化算法Sequoia Optimization Algorithm-附Matlab免费代码
算法·数学建模·matlab
C灿灿数模2 小时前
备战国赛算法讲解——马尔科夫链,2025国赛数学建模B题详细思路模型更新
算法·数学建模