题目
- 原题连接:300. 最长递增子序列
1- 思路
- 模式识别:最长递增子序列——> 利用动规五部曲 解决 ——> 借助 i 和 j 指针,其中 j < i
动规五部曲
- 1.定义 dp 数组确定 dp数组的含义
int[] dp = new int[nums.length]
:——> dp[i] 代表 以 i 为结尾的数组的最长递增子序列
- 2.递推公式
if(nums[i]>nums[j]) { dp[i] = Math.max(dp[i],dp[j]+1); }
- 3.初始化
- 所有初始化都为 1 ,
Arrays.fill(dp,1);
- 所有初始化都为 1 ,
- 4.遍历顺序
- 利用
i
和j
进行遍历
- 利用
2- 实现
⭐300. 最长递增子序列——题解思路
class Solution {
public int lengthOfLIS(int[] nums) {
// 1. 定义 dp数组
int[] dp = new int[nums.length];
// 2. 递推公式
// if(nums[i] > nums[j] )
// {dp[i] = Math.max(dp[i],dp[j+1]);}
// 3. 初始化
Arrays.fill(dp,1);
// 4. 遍历顺序
for(int</