【力扣】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;
    }
};
相关推荐
小灰灰的FPGA1 小时前
9.9元奶茶项目:matlab+FPGA的cordic算法(向量模式)计算相位角
算法·matlab·fpga开发
2401_841495642 小时前
【数据结构】顺序表的基本操作
数据结构·c++·算法·顺序表·线性表·线性结构·顺序表的基本操作
自信的小螺丝钉2 小时前
Leetcode 138. 随机链表的复制 哈希 / 拼接+拆分
leetcode·链表·哈希算法
元亓亓亓2 小时前
LeetCode热题--207. 课程表--中等
算法·leetcode·职场和发展
坚持编程的菜鸟2 小时前
LeetCode每日一题——有效的字母异位词
c语言·算法·leetcode
未知陨落2 小时前
LeetCode:70.最小栈
数据结构·算法·leetcode
小糖学代码2 小时前
STL的list模拟实现(带移动构造和emplace版本)
c语言·数据结构·c++·windows·list
jikiecui2 小时前
信奥崔老师:常用编译命令g++的基本使用
算法
shenghaide_jiahu3 小时前
leetcode430:扁平化多级双向链表
数据结构·链表
失散133 小时前
软件设计师——03 数据结构(上)
数据结构·软考·软件设计师