题解 | #拦截导弹#

拦截导弹

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

此动态规划的状态转移方程为dp[i]=max{1, dp[j]+1 | j<i && A[j]>A[i]}.
#include<iostream>
using namespace std;

int height[26];
int dp[26];

int main(){
	int k;
	while(cin>>k){
		for(int i=0;i<k;i++){
			cin>>height[i];
		}
		int answer=0;
		for(int i=0;i<k;i++){
			dp[i]=1;				//初始化为1 
			for(int j=0;j<i;j++){
				if(height[j]>=height[i]){
					dp[i]=max(dp[j]+1,dp[i]);
				}
			}
			answer=max(answer,dp[i]);
		}
		cout<<answer<<endl;
	}
	return 0;
}


全部评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
10-05 11:11
海南大学 Java
投票
理想江南137:感觉挺真诚的 感觉可以试一试
点赞 评论 收藏
分享
11-26 22:34
已编辑
重庆邮电大学 Java
快手 客户端开发 (n+5)k*16 公积金12
牛客895077908号:佬 什么双非硕啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务