力扣连接:300. 最长递增子序列 - 力扣(LeetCode)
class Solution {public int lengthOfLIS(int[] nums) {int ans = 0;int len = nums.length;// tail[i]表示长度为i+1的子序列结尾的数字// 注意:最后tail数组中存的序列虽然是严格递增的,但是不是最后的结果子序列int[] tail = new int[len];for (int i = 0; i < len; i++) {// 找到第一个大于nums[i]的数int l = 0, r = ans;while (l < r) {int m = l + (r - l) / 2;if (tail[m] < nums[i]) {l = m + 1;} else {r = m;}}tail[r] = nums[i];if (ans == r)ans++;}return ans;}
}