动态规划经典问题

Posted lzq666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态规划经典问题相关的知识,希望对你有一定的参考价值。

## 一、最大子序列和
给定一个数组,求出其最大的子序列之和
定义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;
}
```

以上是关于动态规划经典问题的主要内容,如果未能解决你的问题,请参考以下文章

经典算法研究系列 之 动态规划算法

经典动态规划:「换硬币」系列三道问题详解

动态规划算法经典问题回顾

经典动态规划——从LeetCode题海中总结常见套路

经典动态规划:完全背包问题

动态规划(Dynamic Programming)LeetCode经典题目