思路:直接暴力解决就行.其实暴力循环的每一次循环都是贪心的思想.
#include <stdio.h>
int main() {
int n;
int a[100000];
scanf("%d",&n);
for(int i = 0; i < n; i++){
scanf("%d",&a[i]);
}
int max;//记录拦截系统当前的最大值.用于和后面的数据进行比较
int num = 0;//记录的是拦截导弹的数量,当拦截数量和总数量一样的时候,循环结束
int s = 0;//记录的是拦截系统的个数.
while(num < n){
max = 30005;
//思路其实很简单,就是暴力循环,一遍一遍的找,找到就标记一下,表示导弹被拦截,以后就不再理会(理论上,但是这里还是需要比较).
for(int i = 0; i < n; i++){
if(max >= a[i]){
max = a[i];
a[i] = 30010;
num++;
}
}
if(max != 30005){
s++;
}
}
printf("%d\n",s);
return 0;
}