题目链接(点击打开链接)
解法一:直接(暴力+贪心)模拟:对于每一个飞过来的导弹,遍历所有已有的系统的当前的值,找出一个最合适(即系统目前高度与导弹高度相差最小,PS:贪心思想)的系统。若是没找到合适的系统,说明此时导弹已经高于所有系统的目前高度 ,那么就重新设立一座新的系统 。若是找到了最合适的系统的话,就用该导弹的高度更新所找的系统的目前值。
代码如下:
#include<bits/stdc++.h>
using namespace std;
#define N 1000
int n; //导弹的个数
int daodan[N]; //存储各个导弹的高度
int xitong[N]; //存储各个系统目前的高度(即最低高度)
int main(){
while(cin >> n){
for(int i = 0;i < n;++i){ //读入各个导弹的高度
cin >> daodan[i];
}
xitong[0] = daodan[0]; //对于第一颗导弹,构建第一座系统
int len = 1; //记录已构建的系统个数,由于第一个系统已经构建好了,所以初始化为1
int minindex = 0; //记录对于