LeetCode Hot Code——最大子数组和

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组是数组中的一个连续部分。

示例 1:

复制代码
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:

复制代码
输入:nums = [1]
输出:1

示例 3:

复制代码
输入:nums = [5,4,-1,7,8]
输出:23

提示:

  • 1 <= nums.length <= 105

  • -104 <= nums[i] <= 104

    class Solution {
    public:
    int maxSubArray(vector& nums) {
    //保存最大和
    int ans = nums[0];
    //当前位置为结尾时最大子序列和
    int maxx = nums[0];
    //以每个位置为结尾时,最大子序列和
    for (int i = 1; i < nums.size(); i++)
    {
    //当前位置的上一个最大子序列和加上当前位置的值
    int tmp = maxx + nums[i];
    //两种情况:
    // tmp 大于当前位置的值,以当前位置为结尾时,最大的子序列为 tmp
    // tmp 小于当前位置的值,以当前位置为结尾时,最大的子序列为 nums[i]
    // 每次记录最大的 tmp,就是答案
    if (tmp > nums[i])
    {
    maxx = tmp;
    }
    else
    {
    maxx = nums[i];
    }
    ans = max(ans, maxx);
    }
    return ans;
    }
    };

相关推荐
变量未定义~19 分钟前
最小生成树1(Prim模板)、最小生成树2(kruskal模板)、最近公共祖先(模板)
算法
这就是佬们吗23 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
LONGZETECH30 分钟前
新能源汽车充电设备装配与调试仿真教学软件 技术架构与核心实现解析
大数据·算法·3d·unity·架构·汽车
自学小白菜32 分钟前
关于提升机器学习算法做预测回归任务精度的方法分享
算法·机器学习·回归·提升精度
学废了wuwu40 分钟前
从入门到实战:深入浅出模型压缩三大核心——剪枝、彩票假设与知识蒸馏
人工智能·算法·剪枝
小肝一下1 小时前
3. 单链表
c语言·数据结构·c++·算法·leetcode·链表·dijkstra
劈星斩月1 小时前
监督学习算法 之 决策树
学习·算法·决策树
学计算机的计算基1 小时前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana21 小时前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
To_OC9 小时前
LC 131 分割回文串:刚学回溯时,我连怎么切字符串都想不明白
javascript·算法·leetcode