leetcode 53. 最大子数组和

题目如下

数据范围

复制代码
法一
暴力解法: 生成前缀和数组用于迅速判断得到从i到j的子数组和。
时间复杂度O(n方)因为数组很大这个解法虽然可以但是容易超时。
法二
令f(n)是以n为结尾的最大子数组和,其中f(n) = max(f(n - 1) + nums[n],f(n))
很容易想到设置一个数组用于存储每个f(i)但是我们每次循环只需要使用上一个值所以可以用pre变量来节省内存。

通过代码

cpp 复制代码
class Solution {
public:
  int maxSubArray(vector<int>& nums) {
        int sum = nums[0];int pre = 0;
        for(const auto &n:nums) {
                pre = max(pre + n,n);
                sum = max(pre,sum);
        }
    return sum;

}
};
相关推荐
TracyCoder123几秒前
LeetCode Hot100(53/100)——739. 每日温度
算法·leetcode·职场和发展
_Twink1e几秒前
[算法竞赛]二、链表
数据结构·算法·链表
民乐团扒谱机10 分钟前
【读论文】引力与惯性的起源:从全息原理到牛顿定律与爱因斯坦方程
算法·量子力学··万有引力·爱因斯坦方程·全息原理·牛顿定律
努力学算法的蒟蒻13 分钟前
day84(2.13)——leetcode面试经典150
算法·leetcode·面试
@––––––15 分钟前
力扣hot100—系列8-回溯算法
javascript·算法·leetcode
!停16 分钟前
数据结构二叉树—堆(2)&链式结构(上)
数据结构·算法
C++ 老炮儿的技术栈21 分钟前
万物皆文件:Linux 抽象哲学的开发之美
c语言·开发语言·c++·qt·算法
im_AMBER22 分钟前
Leetcode 120 求根节点到叶节点数字之和 | 完全二叉树的节点个数
数据结构·学习·算法·leetcode·二叉树·深度优先
1027lonikitave24 分钟前
FFTW的expr.ml怎么起作用
算法·哈希算法
TracyCoder12324 分钟前
LeetCode Hot100(54/100)——215. 数组中的第K个最大元素
算法·leetcode·排序算法