题解 | #拦截导弹#

拦截导弹

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;
}


全部评论

相关推荐

不愿透露姓名的神秘牛友
07-10 11:55
点赞 评论 收藏
分享
Yki_:你要算时间成本呀,研究生两三年,博士三四年,加起来就五六年了,如果你本科去腾讯干五年,多领五年的年薪,加上公司内涨薪,可能到时候十五年总薪资也跟博士差不多
点赞 评论 收藏
分享
废物一个0offer:认真的吗二本本科找人工智能岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务