题解 | 最大上升子序列和

最大上升子序列和

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

#include <iostream>
using namespace std;
const int N = 1010;
int a[N];
int f[N];
int main() {
    int n;
    while(cin>>n){
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        int Max=0;
        for(int i=1;i<=n;i++){
            f[i]=a[i];
            if(f[i]>Max)Max=f[i];
            for(int j=i;j>=1;j--){
                if(a[i]>a[j]){
                    f[i]=max(f[i],f[j]+a[i]);
                    if(f[i]>Max)Max=f[i];
                }
            }
        }
        cout<<Max<<endl;
    }
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务