#include <iostream>
#define Max 100
using namespace std;
//最大子数组和,用递归的备忘录写法,动态规划。
int b[Max];
int a[]={1,12,-22,3,7,8,-14,-11,9,8};
int fun(int n)
{
if(b[n]>0)return b[n];
if(n<0)return 0;
int t=fun(n-1);
if(t<0) b[n]=a[n];
else b[n]=t+a[n];
return b[n];
}
void main()
{
fun(9);
int max=b[0];
for(int i=1;i<10;i++)
{
if(b[i]>max) max=b[i];
}
cout<<max<<endl;
}
我感觉用递归的备忘录写法好写多了。
动态规划之最大连续子数组(递归备忘录写法)
最新推荐文章于 2023-02-24 17:50:59 发布