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

一.题目解析:

算法讲解:

1.状态表示:

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

2.状态转移方程

3.初始化

我们可以在前面加上一个虚拟节点,结合状态转移方程和状态表示,可以发现越界位置,并且d[0]以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;

    }
};
相关推荐
科雷软件测试15 小时前
Python中itertools.product:快速生成笛卡尔积
开发语言·python
OOJO16 小时前
c++---list介绍
c语言·开发语言·数据结构·c++·算法·list
别或许17 小时前
1、高数----函数极限与连续(知识总结)
算法
派大星~课堂17 小时前
【力扣-142. 环形链表2 ✨】Python笔记
python·leetcode·链表
田梓燊17 小时前
code 560
数据结构·算法·哈希算法
笨笨饿17 小时前
29_Z变换在工程中的实际意义
c语言·开发语言·人工智能·单片机·mcu·算法·机器人
kobesdu18 小时前
综合强度信息的激光雷达去拖尾算法解析和源码实现
算法·机器人·ros·slam·激光雷达
艾为电子18 小时前
【技术帖】让接口不再短命:艾为 C-Shielding™ Type-C智能水汽防护技术解析
c语言·开发语言
weixin_4130632118 小时前
记录 MeshFlow-Online-Video-Stabilization 在线稳像
算法·meshflow·实时防抖
会编程的土豆18 小时前
【数据结构与算法】动态规划
数据结构·c++·算法·leetcode·代理模式