-
题目链接https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray/comments/
-
题目描述
- 给两个整数数组
A
和B
,返回两个数组中公共的、长度最长的子数组的长度。 -
输入: A: [1,2,3,2,1] B: [3,2,1,4,7] 输出: 3 解释: 长度最长的公共子数组是 [3, 2, 1]。
- 给两个整数数组
-
解题思路
- 动态规划:dp[i][j] A[0, i]和B[0,j]的最长重复子数组
- 状态转移方程
-
代码
- python
class Solution: def findLength(self, A, B): n1, n2 = len(A), len(B) dp = [[0] * (n1 + 1) for _ in range(n2+1)] res = 0 for i in range(1, n2+1): for j in range(1, n1+1): dp[i][j] = (dp[i-1][j-1] + 1) if B[i-1] == A[j-1] else 0 res = max(res, dp[i][j]) return res
- python
leetcode 718. 最长重复子数组
最新推荐文章于 2024-01-31 15:16:56 发布