动态规划——最大字段和

来源:互联网 发布:域名买多少年合适 编辑:程序博客网 时间:2024/05/16 17:03

#include<iostream>using namespace std;/*b=0为暂时存放的值,sum=0记录目前的最优值a[]为输入数据,从1开始初始化,n为数据个数递归公式:b = b > 0 ? b+a[i] : a[i]    1<=i<=n 当 b > sum , sum = b 最优值:0,当数组里面的数据都为负数 sum */int max(int n, int *a){int sum=0, b=0;for(int i=1; i<=n; i++){if(b>0){b += a[i];}else{b = a[i];}if(b>sum){sum = b;}}return sum;}int main(){int n;int a[10000];cin>>n;for(int i=1; i<=n; i++){cin>>a[i];} cout<<max(n, a);} 


原创粉丝点击