【力扣LeetCode】 1413_逐步求和得到正数的最小值

- 第 130 篇 -
Date: 2025 - 09 - 23
Author: 郑龙浩(仟墨)

文章目录

【力扣LeetCode】 1413_逐步求和得到正数的最小值

题目描述

给你一个整数数组 nums 。你可以选定任意的 正数 startValue 作为初始值。

你需要从左到右遍历 nums 数组,并将 startValue 依次累加上 nums 数组中的值。

请你在确保累加和始终大于等于 1 的前提下,选出一个最小的 正数 作为 startValue 。

题目分析|思路解析

题目说成人话就是:

要找一个最小的正数 startValue,使得这个数加上数组中的每一个前缀和都>=1。

如果是这样的话,也就意味着,只要加最小的前缀和=1,其他更大的前缀和必然也可以
公式就是 :startValue + 最小的前缀和 = 1,最小的前缀和与1,最小前缀和与1是可知的,startValue是未知的,所以整理可得公式:1 - 最小的前缀和 => startValue

所以大概步骤就是:

  1. 算出所有的前缀和,在计算过程中求得最小的前缀和是多少
  2. 然后1 - 最小前缀和就得出了startValue
    我刚开始就没注意下面的点,导致结果是<1的时候返回了,此状况,应该返回1才正确。
    注意:求得startValue必须是>=1,所以如果结果是<1的,也只能返回1

代码

cpp 复制代码
// 1413_逐步求和得到正数的最小值
// Author: 郑龙浩 Date: 2025年09月21日
// 用时:42min

// 思路:
// 题目说成人话就是:
// 要找一个最小的正数 startValue,使得这个数加上数组中的每一个前缀和都>=1。
// 如果是这样的话,也就意味着,只要加最小的前缀和=1,其他更大的前缀和必然也可以
// 公式就是:startValue + 最小的前缀和 = 1,最小的前缀和与1,最小前缀和与1是可知的,startValue是未知的,所以整理可得公式:
// 1 - 最小的前缀和 => startValue

// 所以大概步骤就是:
// 1 算出所有的前缀和,在计算过程中求得最小的前缀和是多少
// 2 然后1 - 最小前缀和就得出了startValue
// 我刚开始就没注意下面的点,导致结果是<1的时候返回了,此状况,应该返回1才正确。
// 注意:求得startValue必须是>=1,所以如果结果是<1的,也只能返回1
#include "bits/stdc++.h"
using namespace std;
class Solution {
public:
    int minStartValue(vector<int>& nums) {
        int len = nums.size();
        int min_sum = nums[0], sum = nums[0];
        for (int i = 1; i < len; i++) {
            sum += nums[i];
            if (min_sum > sum) min_sum = sum;
        }
        int startValue = 1 - min_sum; // 注意:求得startValue必须是>=1,所以如果结果是<1的,也只能返回1
        if (startValue < 1) return 1;
        else return startValue;
    }
};

int main(void) {
    ios::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);

    // vector <int> nums = {-3, 2, -3, 4, 2};
    vector <int> nums = {1, 2};
    // vector <int> nums = {1, -2, -3};
    Solution sol;
    cout << sol.minStartValue(nums);
    return 0;
}
相关推荐
@我漫长的孤独流浪13 分钟前
程序综合实践第十二周-二叉树
算法·深度优先·图论
啊阿狸不会拉杆13 分钟前
《数字图像处理》第 3 章 - 灰度变换与空间滤波
图像处理·人工智能·算法·计算机视觉·数字图像处理
执笔论英雄14 分钟前
【RL 】Ray 支持RDMA
算法
Keep_Trying_Go15 分钟前
统一的人群计数训练框架(PyTorch)——基于主流的密度图模型训练框架
人工智能·pytorch·python·深度学习·算法·机器学习·人群计数
(●—●)橘子……15 分钟前
记力扣557.反转字符串中的单词 练习理解
算法·leetcode·职场和发展
啊阿狸不会拉杆23 分钟前
《数字图像处理 》 第 1 章-绪论
图像处理·python·opencv·算法·数字图像处理
智驱力人工智能28 分钟前
加油站静电夹检测 视觉分析技术的安全赋能与实践 静电夹检测 加油站静电夹状态监测 静电接地报警器检测
人工智能·深度学习·算法·安全·yolo·边缘计算
断剑zou天涯36 分钟前
【算法笔记】线段树SegmentTree
数据结构·笔记·算法
ULTRA??1 小时前
各种排序算法时间复杂度分析和实现和优势
c++·python·算法·排序算法
sprintzer1 小时前
12.06-12.15力扣分治法刷题
算法·leetcode