C++, 贪心 + 二分查找 设置一个记录上升子序列状态的二维dp[n + 1][ ]; vector<vector> dp_str(n + 1, vector ());第一维下标代表当前长度,其第二维代表最长子序列 贪心思想:若想让子序列长度更长,则应确保每次增加新元素的幅度尽可能的小,“小步多走”; 从头遍历数组,寻找 ==以当前元素为最后元素== 的上升子序列; 若 当前元素 > 当前最长子序列的最后一个元素,则添加并更新最长子序列; 若 当前元素 <= 当前最长子序列的最后一个元素, 则其可以替代当前最长子序列中间的某一个元素,为后面的上升序列做铺垫 ...