动态规划-最大连续子序列和

一个数组,找出其中连续的一个子数,使它们的和尽可能大。
如 -2 11 -4 13 -5 -2这5个数中,最大连续子序列和是11-4+13=20。
满足重叠子问题和最优子结构两个条件。即后面的最大值都要用到前面的最大值。
本题比较容易想出递推公式:dp[i] = max(f[i],dp[i-1]+f[i])。

#include
using namespace std;
#define maxn 105
int f[maxn];
int dp[maxn];
int main(){
	int n;
	while(scanf("%d",&n)!=EOF){
		for(int i=0;im) m = dp[i];
		}
		printf("%d\n",m);
		
	}
	return 0;
}

你可能感兴趣的:(动态规划-最大连续子序列和)