【力扣】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;
    }
};
相关推荐
少许极端1 小时前
算法奇妙屋(十)-队列+宽搜(BFS)
java·数据结构·算法·bfs·宽度优先·队列
异步的告白2 小时前
C语言-数据结构-1-动态数组
c语言·数据结构·c++
想唱rap3 小时前
Linux开发工具(4)
linux·运维·服务器·开发语言·算法
前端炒粉3 小时前
21.搜索二维矩阵 II
前端·javascript·算法·矩阵
星释3 小时前
Rust 练习册 :Rail Fence Cipher与栅栏密码
开发语言·算法·rust
东方隐侠安全团队-千里3 小时前
第3节 RSA算法开启公钥加密时代
网络·人工智能·算法
7澄14 小时前
深入解析 LeetCode 1:两数之和
算法·leetcode·职场和发展·arraylist
Moonbit4 小时前
MGPIC 初赛提交倒计时 4 天!
后端·算法·编程语言
Miraitowa_cheems4 小时前
LeetCode算法日记 - Day 98: 分割回文串 II
数据结构·算法·leetcode·深度优先·动态规划