-
前言
状态:300 看解析,674AC,718看解析 -
更新
1 | 24-07-01 初始记录 |
初步题解
300 最长递增子序列
题目链接:(https://leetcode.cn/problems/longest-increasing-subsequence)
-
确定
dp[i]
的含义:dp[i]
表示第 i 个下标前的最长递增子序列的长度 -
递推公式:
dp[i] = Math.max(dp[i], dp[j] + 1)
。 -
dp 数组的初始化:
dp
数组所有元素的初始化值都为 1。 -
遍历顺序:从前向后遍历。
-
打印 dp 数组(用于 debug)
1 | public int lengthOfLIS(int[] nums) { |
674 最长连续递增序列
题目链接:(https://leetcode.cn/problems/longest-continuous-increasing-subsequence)
-
确定
dp[i]
的含义:dp[i]
表示第 i 个下标前的最长连续递增子序列的长度 -
递推公式:
dp[i] = Math.max(dp[i], dp[i - 1] + 1)
。 -
dp 数组的初始化:
dp
数组所有元素的初始化值都为 1。 -
遍历顺序:从前向后遍历。
-
打印 dp 数组(用于 debug)
1 | public int findLengthOfLCIS(int[] nums) { |
718 最长重复子数组
-
确定
dp[i][j]
的含义:num1 到 i - 1;num2 到 j - 1 位置的最长重复数组。 -
递推公式:
dp[i][j] = dp[i - 1][j - 1] + 1;
。 -
dp 数组的初始化:
dp
数组所有元素的初始化值都为 0。 -
遍历顺序:从前向后遍历。
-
打印 dp 数组(用于 debug)题目链接:(https://leetcode.cn/problems/maximum-length-of-repeated-subarray)
1 | public int findLength(int[] nums1, int[] nums2) { |
看解析
300 最长递增子序列
解析:(https://programmercarl.com/0300.最长上升子序列.html)
674 最长连续递增序列
解析:(https://programmercarl.com/0674.最长连续递增序列.html)