动态规划_最大子数组和_C++

一.题目解析:

算法讲解:

1.状态表示:

dpi表示以i位置为结尾,子数组的和最大

2.状态转移方程

3.初始化

我们可以在前面加上一个虚拟节点,结合状态转移方程和状态表示,可以发现越界位置,并且d0以0位置为结尾,子数组的和最大,要不影响后面填表应该为最小值min

4.填表顺序

从左向右

5.返回值

返回dp表的最大值

二.代码实现:

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

    }
};
相关推荐
武子康18 小时前
Java-27 深入浅出 Spring - 实现简易Ioc-03 在上节的业务下手动实现IoC 从 XML 配置到 BeanFactory 反射注入
java·后端·mybatis
88号技师18 小时前
2026年2月一区SCI-交叉传播优化算法Propagation Alongside Crossover-附Matlab免费代码
开发语言·算法·数学建模·matlab·优化算法
悠仁さん18 小时前
数据结构 图(代码实现篇 C语言版)
数据结构·算法·图论
二哈赛车手18 小时前
新人笔记---idea索引失效问题解决方案
java·笔记·spring·elasticsearch·intellij-idea
chase_my_dream18 小时前
LeGO-LOAM 详细源码流程解读
c++·计算机视觉·自动驾驶
aini_lovee18 小时前
多智能体粒子群优化(Multi-Agent Particle Swarm Optimization, MAPSO)
算法
A.零点18 小时前
【2个月 C 语言从入门到精通:零基础系统教程】第十二讲:深入了解指针(五)
c语言·开发语言·网络·笔记·visual studio
周末也要写八哥18 小时前
贪心法求经典算法题——最低加油次数
算法
飞天狗11118 小时前
零基础JavaWeb入门——第五课第一小节:九大内置对象 · 第1个:request(请求对象)
java·开发语言·前端·后端·servlet
z落落18 小时前
C#ToolStrip+StatusStrip 状态栏实时显示系统时间+NotifyIcon系统托盘
开发语言·c#