贪心算法
求导弹拦截的最少系统,自然考虑用当前高度最接近的系统拦截。
求导弹拦截的最少系统,自然考虑用当前高度最接近的系统拦截。
#include<stdio.h>
#define INF 0x7ffffff
#define MAXN 10000
int dp[MAXN];//dp[i]代表第i个导弹当前拦截的高度
int main()
{
int n,x,i,res,flag;
while(scanf("%d",&n)!=EOF)
{
res=0;
while(n--)
{
scanf("%d",&x);
flag=0;
for(i=0;i<res;i++)
{
if(x<=dp[i])
{
dp[i]=x;
flag=1;
break; //注意跳出 避免重复更改dp[]数组内的值。
}
}
if(flag==0)
{
dp[res]=x;
res++;
}
}
printf("%d\n",res);
}
return 0;
}