LeetCode 300. 最长递增子序列
300. 最长递增子序列
解题思路
动态规划
状态定义:
dp[i]表示以nums[i]结尾的最长递增子序列的长度。转移方程:
对于每个位置i,遍历之前的所有位置j($0 \le j < i$):- 如果
nums[i] > nums[j],说明nums[i]可以拼接在nums[j]后面,此时dp[i] = Math.max(dp[i], dp[j] + 1)。
- 如果
初始化:
每个元素自身都可以作为一个长度为 1 的子序列,初始化dp[i] = 1。最终结果:
dp数组中的最大值。
参考代码
1 | |
记忆化搜索
1 | |
递推
1 | |
LeetCode 300. 最长递增子序列
https://sowink.cn/2026/02/08/LeetCode-300-最长递增子序列/