给两个整数数组 A 和 B ,返回两个数组中公共的、长度最长的子数组的长度。
示例:
输入:
A: [1,2,3,2,1]
B: [3,2,1,4,7]
输出:3
解释:
长度最长的公共子数组是 [3, 2, 1] 。
字符串的公共子序列的简单实现- 暴力解法
def demo(a, b):
"""
枚举两个数组的初始位置,依次比较每个元素,相同+1,每次比较取max,直到end loop,return max
:param a:
:param b:
:return:
"""
ans = 0
for i in range(len(a)):
for j in range(len(b)):
k = 0
while i+k < len(a) and j+k < len(b) and a[i+k] == b[j+k]:
k += 1
ans = max(ans, k)
return ans
if __name__ == "__main__":
lst_a = [1, 2, 3, 2, 1]
lst_b = [3, 2, 1, 4, 7]
print(demo(lst_a, lst_b))
# 3 >>> [1, 2, 3]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-length-of-repeated-subarray
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。