function LIS(nums) {
if (nums.length === 0) return [];
const results = [[nums[0]]];
console.log(results, "第一行");
for (let i = 1; i < nums.length; i++) {
const n = nums[i];
_update(n);
}
function _update(n) {
for (let i = results.length - 1; i >= 0; i--) {
const line = results[i];
const tail = line[line.length - 1];
if (n > tail) {
results[i + 1] = [...line, n];
break;
}
else if (n < tail && i === 0) {
results[i] = [n];
}
}
}
console.log(results);
return results[results.length - 1];
}
console.log(LIS([4, 5, 1, 2, 7, 3, 6, 9, 10]));