add js solution for lengthOfLIS

This commit is contained in:
Qi Jia
2021-07-13 19:00:19 -07:00
committed by GitHub
parent b64df0ff25
commit f7bfc0536a

View File

@ -170,6 +170,25 @@ func lengthOfLIS(nums []int ) int {
return len(dp) return len(dp)
} }
``` ```
Javascript
```javascript
const lengthOfLIS = (nums) => {
let dp = Array(nums.length).fill(1);
let result = 1;
for(let i = 1; i < nums.length; i++) {
for(let j = 0; j < i; j++) {
if(nums[i] > nums[j]) {
dp[i] = Math.max(dp[i], dp[j]+1);
}
}
result = Math.max(result, dp[i]);
}
return result;
};
```
*复杂度分析* *复杂度分析*
- 时间复杂度O(nlogn)。数组 nums 的长度为 n我们依次用数组中的元素去更新 dp 数组,相当于插入最后递增的元素,而更新 dp 数组时需要进行 O(logn) 的二分搜索,所以总时间复杂度为 O(nlogn)。 - 时间复杂度O(nlogn)。数组 nums 的长度为 n我们依次用数组中的元素去更新 dp 数组,相当于插入最后递增的元素,而更新 dp 数组时需要进行 O(logn) 的二分搜索,所以总时间复杂度为 O(nlogn)。
- 空间复杂度O(n),需要额外使用长度为 n 的 dp 数组。 - 空间复杂度O(n),需要额外使用长度为 n 的 dp 数组。