【力扣】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;
    }
};
相关推荐
大名顶顶10 分钟前
数据结构实战之线性表(三)
c语言·数据结构·c#·线性回归
FirstFrost --sy11 分钟前
数据结构之时间复杂度与空间复杂度
数据结构·算法
Tisfy15 分钟前
LeetCode 0922.按奇偶排序数组 II:O(1)空间复杂度-一次遍历双指针
算法·leetcode·题解·双指针
Captain823Jack22 分钟前
[leetcode·回溯算法]回溯算法解题套路框架
python·算法·leetcode·职场和发展
竹下为生35 分钟前
LeetCode --- 434周赛
算法·leetcode·职场和发展
算法工程师y1 小时前
基于RLS的自适应滤波器设计与Matlab实现
开发语言·算法·matlab
kyle~1 小时前
matlab快速入门(2)-- 数据处理与可视化
人工智能·算法·matlab
geooorge2 小时前
PAT甲级1052、Linked LIst Sorting
c++·算法
fly spider2 小时前
JVM- 垃圾回收算法
java·jvm·算法·gc
siy23332 小时前
[C语言日寄] 源码、补码、反码介绍
c语言·开发语言·笔记·学习·算法