题解 | #dp# #最长公共子数组#
最长公共子数组
https://www.nowcoder.com/practice/6032826d387c4a10ad3690cce5fdb015
#coding:utf-8 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param A int整型一维数组 # @param B int整型一维数组 # @return int整型 # class Solution: def longestCommonSubarry(self , A , B ): # write code here #init max_len = 0 n1 = len(A) n2 = len(B) dp = [[0 for j in range(0, 1 + n2)] for i in range(0, 1 + n1)] #if A[0] == B[0]: # dp[0][0] = 1 #process for i in range(1, n1 + 1): for j in range(1, n2 + 1): if A[i - 1] == B[j - 1]: dp[i][j] = dp[i - 1][j - 1] + 1 else: dp[i][j] = 0 #这里因为是子数组,应该置0 max_len = max(max_len, dp[i][j]) #print ("dp: ", dp) print ("max_len: ", max_len) return max_len