代码随想录算法训练营第五十三天 |1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和

1143. 最长公共子序列

题目链接:1143. 最长公共子序列

  • dp含义: nums1[0, i -1]为结尾, nums2 [0, j-1]为结尾的的最长公共子序列的长度

  • 递推公式:

    • if(nums1[i-1] == nums2[j])dp[i][j] = dp[i - 1][j - 1] + 1

    • dp[i] = Math.max(dp[i][j - 1], dp[i-1][j])

  • 初始化:

    • dp[0][j]和dp[i][0]在这样的dp定义下是和空字符串去做比较所以初始化为0,这是巧妙之处所在

1035. 不相交的线

题目链接:1035. 不相交的线

  • 数组保证顺序,约等于上一题

53. 最大子数组和

题目链接:53. 最大子数组和

  • 递推公式: dp[i] = Math.max(dp[i-1] + nums[i], nums[i]);

你可能感兴趣的:(代码随想录算法训练营第五十三天 |1143. 最长公共子序列、1035. 不相交的线、53. 最大子数组和)