题链接:https://leetcode-cn.com/problems/longest-increasing-subsequence/submissions/
题描述:
解题思路:
这里的上升序列是严格上升序列,[1, 2, 2] 输出是2。
利用 dp 数组保存当前元素的最长上升子序列的长度。
代码实现:
/**
* @param {number[]} nums
* @return {number}
*/
var lengthOfLIS = function(nums) {
if (nums.length == 0) {
return 0;
}
let res = 1;
let dp =[];
dp[0] = 1;
for (let i = 1; i < nums.length; i++) {
let t = 1;
for (let j = i - 1; j >= 0; j--) {
if (nums[i] > nums[j] && t <= dp[j]) {
t = dp[j] + 1;
}
}
dp[i] = t;
res = t > res ? t : res;
}
return res;
};
时间复杂度:O(n^2)
空间复杂度:O(n)