【力扣】53.最大子数组和

AC截图

题目

思路

这道题主要考虑的就是要排除负数带来的负面影响。如果遍历数组,那么应该有如下关系式:

currentAns= max(pre+nums[i],nums[i])

pre是之前记录的最大和,如果pre+nums[i]小于nums[i],就要考虑舍弃pre,从下标i开始重新计数

然后获取全局最大值:

maxAns = max(maxAns,currentAns)

代码

cpp 复制代码
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int pre=0,maxAns=nums[0];

        for(int i=0;i<nums.size();i++){
            pre = max(pre+nums[i],nums[i]);
            maxAns = max(pre,maxAns);
        }

        return maxAns;
    }
};
相关推荐
独自破碎E6 分钟前
【总和拆分 + 双变量遍历】LCR_012_寻找数组的中心下标
数据结构·算法
WBluuue7 分钟前
Codeforces 1076 Div3(ABCDEFG)
c++·算法
u01092727118 分钟前
模板编译期排序算法
开发语言·c++·算法
GIS瞧葩菜27 分钟前
Cesium 轴拖拽 + 旋转圈拖拽 核心数学知识
人工智能·算法·机器学习
m0_6860416133 分钟前
C++中的适配器模式变体
开发语言·c++·算法
txzrxz34 分钟前
结构体排序,双指针,单调栈
数据结构·算法·双指针算法·单调栈·结构体排序
AndrewHZ38 分钟前
【AI黑话日日新】什么是AI智能体?
人工智能·算法·语言模型·大模型·llm·ai智能体
wWYy.39 分钟前
算法:二叉树最大路径和
数据结构·算法
葱明撅腚41 分钟前
利用Python挖掘城市数据
python·算法·gis·聚类
We་ct43 分钟前
LeetCode 36. 有效的数独:Set实现哈希表最优解
前端·算法·leetcode·typescript·散列表