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

最大上升子序列和

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

max(dp[i],max(dp[j]+num[i]|num[j]<num[i])

#include <iostream>
using namespace std;

//最大上升子序列和
int num[1010];
int dp[1010];

int maxincrease(int n){
    int ans=0;
    dp[0]=num[0];
    for(int i=1;i<n;i++){
        dp[i]=num[i];
        for(int j=0;j<i;j++){
            if(num[j]<num[i])
                dp[i]=max(dp[i],dp[j]+num[i]);
        }
    ans=max(ans,dp[i]);
    }
    return ans;
}

int main(){
    int n;
    cin>>n;
    for(int i=0;i<n;i++){
        cin>>num[i];
    }
    int ans=maxincrease(n);
    cout<<ans<<endl;
    return 0;
}
全部评论

相关推荐

kl_我是东山啊:《相关公司:阿里巴巴》
投递阿里巴巴等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务