最长上升子序列
题目
设有整数序列b1,b2,b3,…,bm,若存在下标i1<i2<i3< …<in,且bi1<bi2<bi3< …<bin,则称 b1,b2,b3,…,bm中有长度为n的不下降序列bi1 , bi2 ,bi3 ,…,bin 。求序列b1,b2,b3,…,bm中所有长度(n)最大不下降子序列
输入
第一行n
第二行 整数序列
输入样例
10
3 18 7 14 10 12 23 41 16 24
输出
最大长度n和所有长度为n的序列个数
输出样例
6
思路
把每个数与前面的数组成的最长上升子序列的长度记录在一维数组中。 记录的数就是前面小于它的数中最长上升子序列的长度最长的数+1。
(一下内容补于 2020/10/7)
当然,这个只是 n 方的算法,很多题都过不去。
这时候就要用一个贪心加上了二分的 nlogn 算法。
–>链接在这里,点我查看<–