其他分享
首页 > 其他分享> > 1035. 不相交的线

1035. 不相交的线

作者:互联网

✅做题思路or感想

题目所求的转换一下其实就是求最大连续子序列的长度

最大连线数 = 最大连续子序列的长度

化为经典子序列问题,都适合用动态规划来解

子序列默认不连续,子数组默认连续!

dp数组含义

子序列的题一般都这样子定义dp数组:dp[i][j]表示在nums1[0, i - 1]nums2[0, j - 1]上最长的子序列长度(注意这里是范围里的最长子序列长度!)

为什么要这样子定义呢,因为这样子更方便针对空子数组做操作,比如dp[0][0]根据意义是nums1[-1],nums2[-1],而这本是无意义的,这里就把这个看作空的子数组

递推公式

判断单个字符是有两种可能

  1. nums1[i - 1] == nums2[j - 1]

    • 因为检验的这两个元素相同,故可以拓展前一个的最大子序列的长度
    • 故有dp[i][j] = dp[i - 1][j - 1] + 1
  2. nums1[i - 1] != nums2[j - 1]