300.最长递增子序列
思路:dp[i]的含义是以nums[i]为结尾的最长递增子序列的长度。dp[i]是统计0到i-1的最长子序列长度的最大值,它会一直更新,记得要dp[j]加1。
674. 最长连续递增序列
思路:因为是连续,所以dp[i]只和dp[i - 1]比较最长子序列的长度。
注意:体会一下和上一道【300.最长递增子序列】思路和代码的区别。
718. 最长重复子数组
思路:二维dp数组,记录i-1结尾和j-1结尾时的最长重复子数组的长度。两个for循环,dp[i][j] = dp[i - 1][j - 1] + 1。
注意:i-1和j-1结尾省去了i和j结尾初始化要先遍历一遍获取值的过程,这样直接for循环时边进行边赋值。