题目:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d5fcc44a5f8a4e14b96766018c503e08.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Jm96L-f5L2G5Yiw54Gs,size_20,color_FFFFFF,t_70,g_se,x_16)
动态规划:
![在这里插入图片描述](https://img-blog.csdnimg.cn/458f541e278844fdb92f2a31fcbaed21.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6Jm96L-f5L2G5Yiw54Gs,size_20,color_FFFFFF,t_70,g_se,x_16)
分析:上面的图是老的数组,下面的是新的数组,通过老数组的当前值加上前一个值对应位置的新数组的值,就是新数组对应位置的新值,最后找到新的队列元素中的最大值即可。
代码如下:
#include <iostream>
#include <vector>
using namespace std;
class Solution
{
public:
int maxSubArray(vector<int>& nums)
{
int length = nums.size();
vector<int>resultV(length,0);
for(int i = 0; i<length;i++)
{
if(i == 0)
{
resultV[i]