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

最大上升子序列和

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

最长上升子序列和的变体。
#include<iostream>
using namespace std;

const int maxn=1001;
int A[maxn];
int dp[maxn];

int main(){
	int n;
	while(cin>>n){
		for(int i=0;i<n;i++){
			cin>>A[i];
		}
		int maximum=0;
		for(int i=0;i<n;i++){
			dp[i]=A[i];		//初始化为A[i],以便后面直接用dp[i]进行比较
			for(int j=0;j<i;j++){
				if(A[j]<A[i]){
					dp[i]=max(dp[i],dp[j]+A[i]);
				}
			}
			maximum=max(maximum,dp[i]);
		}
		cout<<maximum<<endl;
	}
	return 0;
} 


全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务