一、题目描述
二、 思路分析
- 第一问 求一套系统的最大拦截数——贪心
以题目样例为例 389 207 155 300 299 170 158 65
创建一个数组存储拦截的导弹从前往后,依次判断,只要当前的导弹高度低于上一发导弹就拦截它,将它的高度填入数组,此时这个高度作为新的判断标准。
若此时的导弹高度高于上一发导弹,不能急着舍弃它,需要判断如果在前面可拦截此时这发导弹的条件之下,拦截这发导弹是否能获得更大的拦截数,即最优解。
所以此时在前面填入的数据中找到最近的高于此时的导弹的高度的值,即389。
此时单看数组中的数据可能会觉得别扭,因为高度为155的导弹在高度为300的导弹之前过来,但却存在300之后的位置。 其实数组中具体的数据是什么无所谓,我们需要知道的是此时拦截的最后一发导弹的高度(300)和数组中存入的元素的个