标签:相交 dp 数组 序列 长度 nums1 nums2 1035
✅做题思路or感想
题目所求的转换一下其实就是求最大连续子序列的长度
最大连线数 = 最大连续子序列的长度
化为经典子序列问题,都适合用动态规划来解
子序列默认不连续,子数组默认连续!
dp数组含义
子序列的题一般都这样子定义dp数组:dp[i][j]
表示在nums1
的[0, i - 1]
和nums2
的[0, j - 1]
上最长的子序列长度(注意这里是范围里的最长子序列长度!)
为什么要这样子定义呢,因为这样子更方便针对空子数组做操作,比如dp[0][0]
根据意义是nums1[-1],nums2[-1]
,而这本是无意义的,这里就把这个看作空的子数组
递推公式
判断单个字符是有两种可能
-
nums1[i - 1] == nums2[j - 1]
- 因为检验的这两个元素相同,故可以拓展前一个的最大子序列的长度
- 故有
dp[i][j] = dp[i - 1][j - 1] + 1
-
nums1[i - 1] != nums2[j - 1]
标签:相交,dp,数组,序列,长度,nums1,nums2,1035 来源: https://www.cnblogs.com/doomaa/p/16119120.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。