题解 1627: 蓝桥杯算法训练VIP-拦截导弹

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

优质题解

蓝桥杯算法训练VIP-拦截导弹-题解(Java代码)

这题乍一看有点唬人,但画个图一看是求**最长不上升序列**和**最长不下降序列**。您请看图--导弹从上往下拦截的,每次只能拦截比上一个高度小或者相等高度的导弹;序列可以是不连续的,串是连续的![](/image_editor_upload/20200222081353_85218.jpg)*导弹按顺
优质题解

除去升序序列后,再求降序,当升序过后,降序就是需几套系统,详细看题解

这个题要先学会**动态规划求上升子序列**为什么我说除去降序子序列过后,再找出升序就是它需要几套系统:首先我们通过题目知道:**但是以后每一发炮弹都不能高于前一发的高度**是要求一个降序的,也就是**arr[0]>arr[1]**,所以我们就先使用**动态规划求下降子序列**,和上升上一个道理。
优质题解

拦截导弹,贪心+二分的nlogn做法

解题思路:lower_bound()和upper_bound()都是利用二分查找的方法在一个排好序的数组中进行查找的。1、在从小到大的排序数组中,lower_bound(begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,
优质题解

蓝桥杯算法训练VIP-拦截导弹-详细题解(C++语言代码) 动态规划最长不上升子序列和最长上升子序列(重新修正了一下思路~)

1.直接说了,最多能拦截的导弹的高度是不能超过上一次的高度,所以容易能想到最多能拦截的导弹数量就是所给序列的最长不上升子序列长度(并不是最长下降子序列)。而要拦截所有导弹需要的系统数目就是所给序列的最长上升子序列的长度(也就是把最长上升子序列中每一个数字分到不同的组里面即可),
优质题解

拦截导弹(C++和Java)(动态规划模板:最长上升子序列)

#拦截导弹(C++和Java)(动态规划模板:最长上升子序列)##将题意转化一下先理解题目,理解之后可以转化为两个题目:**问题1:**给定一个数组,求最长不上升子序列的长度**问题2:**给定一个数组,最少有多少个最长不上升子序列可以完全包含这个数组中的每一个值##接下来我们分开来讨论这两个问题##