LeetCode 53.最大子数组和(dp)

给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。

子数组

是数组中的一个连续部分。

示例 1:

复制代码
输入:nums = [-2,1,-3,4,-1,2,1,-5,4]
输出:6
解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。

示例 2:

复制代码
输入:nums = [1]
输出:1

示例 3:

复制代码
输入:nums = [5,4,-1,7,8]
输出:23

这道题是一道动态规划,我们通过比较nums【i】与dp【i-1】+ nums【i】来判断这个位置的最大值,代码如下:

cpp 复制代码
class Solution {
public:
    int maxSubArray(vector<int>& nums) {
        int n = nums.size(),ans = -10005;
        if(n == 1) return nums[0];
        vector<int> dp(n,0);
        dp[0] = nums[0];
        for(int i=1;i<n;i++){
            dp[i] = max(nums[i],dp[i-1]+nums[i]);
        }
        for(int i=0;i<n;i++){
            ans = max(dp[i],ans);
        }
        return ans;
    }
};

加油

相关推荐
枕星而眠3 小时前
C++ 核心语法精讲:auto / 模板 / 命名空间 / 动态内存 从用法到面试
开发语言·c++·面试
-To be number.wan3 小时前
算法日记 | 动态规划(初级)
算法·动态规划
_深海凉_3 小时前
LeetCode热题100-二叉搜索树中第 K 小的元素
算法·leetcode·职场和发展
图码3 小时前
文本两端对齐算法详解:从LeetCode到实际应用
数据结构·图像处理·算法·leetcode·生成对抗网络·面试·职场和发展
yoyo_zzm3 小时前
六大编程语言核心差异全解析
c语言·c++·spring boot·php
liu****3 小时前
第16届国赛蓝桥杯大赛C/C++大学C组
c语言·数据结构·c++·算法·蓝桥杯
沈浩(种子思维作者)3 小时前
物理的本质是数学,还是数学只是描述物理的方便之语?
人工智能·python·算法
yoyo_zzm3 小时前
四大编程语言对比:C/C++/C#/PHP
c++·c#·php
程序员zgh3 小时前
AUTOSAR CP 之 配置、开发流程、工具链 解析
c语言·开发语言·c++·系统架构·汽车
黎阳之光3 小时前
数智孪生,全景可视——黎阳之光透明仓库,重构智慧仓储新范式
大数据·人工智能·算法·安全·数字孪生