当前的导弹与 之前所有的 最小导弹比,如果比他们都大,则要在加一个 拦截系统。。
#include<stdio.h>
#include<string.h>
int a[10000],b[10000];
int main()
{
int n,i,j,k;
while(scanf("%d",&n)!=EOF){
for(i=0; i < n; i++ ){
scanf("%d",&a[i]);
}
b[0]=0;
k=0;
for(i=0;i<n;i++){
for(j=0;j<=k;j++){
if(a[i] <= b[j]){
b[j]=a[i];//如果遇到 当前的导弹 ,比之前的某一拦截系统的 最小导弹小
break; //则 加到 该导弹后面,此时这个拦截系统的最小导弹就替换为 a[i]
}
else if(j == k){
k++; //如果没找到,则在用一个拦截系统,a[i]为这个拦截系统的 最小导弹
b[k]=a[i];
}
}
}
printf("%d\n",k);
}
}