题解 | #拦截导弹#
拦截导弹
https://www.nowcoder.com/practice/dad3aa23d74b4aaea0749042bba2358a
#include <iostream> using namespace std; const int N=30; int f[N],a[N];//f[i]:以第i个导弹(a[i])作为拦截的最后一个导弹最多能拦截多少 int main() { int k; cin>>k; for(int i=1;i<=k;i++) cin>>a[i]; for(int i=1;i<=k;i++){ f[i]=1; for(int j=1;j<=i-1;j++){ if(a[j]>=a[i]){ f[i]=max(f[i],f[j]+1); } } } int res=0; for(int i=1;i<=k;i++) res=max(res,f[i]); cout<<res<<endl; return 0; }