以1143. 最长公共子序列、718. 最长重复子数组为例
题目
子序列和子数组
- 子序列:由数组中不连续的元素组成的数组。eg:[1, 2, 3, 4]子序列可为[1, 4]
- 子数组:数组中连续元素组成的数组。eg:[1, 2, 3, 4]子数组可以为[1, 2, 3]
代码实现
两者的代码非常相似
"""
最长公共子数组(连续)- 动态规划
"""
class Solution:
def findLength(self, A, B) -> int:
dp, res = [[0] * (len(B)+1) for _ in range(len(A)+1)], 0
for i in range(1, len(A)+1):
for j in range(1