leetcode 最长公共子数组
输入:
数组 A [1, 2, 3, 4, 2]
数组 B [2, 3, 6, 1]
输出: 2
动态规划解法
def find_max_len(a,b):
if len(a)==0 or len(b)==0:
return 0
row, column = len(a)+1, len(b)+1
dp = [[0 for j in range(column)] for i in range(row)] #构建dp矩阵
res = 0
for i in range(1, row):
for j in range(1, column):
if a[i-1] == b[j-1]:
dp[i][j] = dp[i-1][j-1]+1 #转移方程
else:
dp[i][j] = 0
res = max(res, dp[i][j])
return res
find_max_len(A,B)