动态规划经典问题

时光毁灭记忆、已成空白 提交于 2020-03-16 08:25:33

## 一、最大子序列和
给定一个数组,求出其最大的子序列之和
定义d[i]代表以下标为i元素的最大子序列和
则d[i] = d[i-1] > 0 ? d[i-1] + a[i] : a[i]
算法:
```c
int maxSubArray(int* nums, int numsSize){
if(numsSize == 0)
return 0;
int m = nums[0];
int d = m;
int di;
for(int i = 1;i < numsSize;i++)
{
di = nums[i];
di = d > 0 ? d + di : di;
if(di > m)
m = di;
d = di;
}
return m;
}
```

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!