目录

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;
    }
};

加油

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
_extraordinary_2 分钟前
笔试专题(七)
数据结构·算法·哈希算法·贪心·线性dp
Tony8813 分钟前
百万级数据量下找到数组中的第K个最大元素
算法
凯强同学27 分钟前
第十五届蓝桥杯大赛软件赛省赛Python 大学 C 组:6.挖矿
c语言·python·算法·职场和发展·蓝桥杯
人工干智能32 分钟前
科普:GBDT与XGBoost比较
大数据·算法·机器学习
GIS小天35 分钟前
AI预测排3新模型百十个定位预测+胆码预测+杀和尾2025年4月7日第40弹
人工智能·算法·机器学习·彩票
旧时光林1 小时前
P9244 [蓝桥杯 2023 省 B] 子串简写
c++·算法·蓝桥杯·模拟
蜕变的土豆1 小时前
十、C++速通秘籍—多进程
c++
前端 贾公子1 小时前
LeetCode - 739.每日温度问题单调栈解法
数据结构·算法
你好我是咯咯咯2 小时前
代码随想录算法训练营Day20
算法
mmz12072 小时前
高精度算法
c++·算法