题解 | #最大上升子序列和#
最大上升子序列和
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;
}