求数组的最长递减子序列
给定一个整数序列,输出它的最长递减(注意不是“不递增”)子序列。
输入包括两行,第一行包括一个正整数N(N<=1000),表示输入的整数序列的长度。第二行包括用空格分隔开的N个整数,整数范围区间为[-30000,30000]。
输出为一行,最长递减子序列的结果,数字间用空格分隔(测试case中只会有一个最长递减子序列)。
样例输入
8
9 4 3 2 5 4 3 2
样例输出
9 5 4 3 2
同上一篇博客,只不过这是递减,思想差不多,就是每在一个位置就从前往后遍历,每一个都判断,与i构成递减序列是否比之前保存的i的数量大,如果是就更新,不过这个要用pre数组记录下,递减序列前一个数的下标。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <stack>
#include <cstring>