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;
    }
    };

相关推荐
随意起个昵称10 分钟前
线性dp-综合刷题1(Not Alone)
算法·动态规划
Lyyaoo.1 小时前
【数据结构】HashMap底层存储+扩容机制+线程安全【待更新】
数据结构·安全·哈希算法
如何原谅奋力过但无声1 小时前
【灵神高频面试题合集09-13】二叉树、二叉搜索树
数据结构·算法·leetcode
皆圥忈1 小时前
磁盘物理结构与文件系统基础讲解
linux·算法
数据仓库搬砖人1 小时前
用 LangGraph 从零搭一个客服 Agent:多轮对话 + 工具调用全流程
算法
GuWenyue1 小时前
告别JS类型坑!Ts为什么在ai时代逐渐成为"第一"语言
前端·算法·typescript
子琦啊1 小时前
哈希与前缀和
算法·哈希算法
xqqxqxxq1 小时前
树结构技术学习笔记
数据结构·笔记·学习
Deep-w2 小时前
【MATLAB】基于离散 LQR 的车辆横向轨迹跟踪控制方法研究
开发语言·算法·matlab
Peter·Pan爱编程2 小时前
23. 算法库:用算法代替手写循环
c++·人工智能·算法