题解 | #最大上升子序列和#

最大上升子序列和

http://www.nowcoder.com/practice/dcb97b18715141599b64dbdb8cdea3bd

#include using namespace std; const int MAXN=1000+10; int main(){ int n; //数组的大小 int arr[MAXN]; //输入数组 int sum[MAXN]; //子序列和数组 while(cin>>n){ for(int i=0;i<n;i++){ cin>>arr[i]; sum[i]=arr[i]; //对sum数组进行初始化 } sum[0]=arr[0]; for(int i=1;i<n;i++){ for(int j=0;j<=i-1;j++){ if(arr[j]<arr[i]){ sum[i]=max(sum[i],sum[j]+arr[i]); } } } int maximum=0; for(int i=0;i<n;i++){ maximum=max(maximum,sum[i]); } cout<<maximum; }

system("pause");
return 0;

}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务