leetcode 718 最長重複子陣列

2021-09-14 08:13:37 字數 666 閱讀 8359

給兩個整數陣列ab,返回兩個陣列中公共的、長度最長的子陣列的長度。

輸入: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

LeetCode 718 最長重複子陣列

給兩個整數陣列 a 和 b 返回兩個陣列中公共的 長度最長的子陣列的長度。示例 1 輸入 a 1,2,3,2,1 b 3,2,1,4,7 輸出 3 解釋 長度最長的公共子陣列是 3,2,1 說明 1 len a len b 1000 0 a i b i 100 lci問題,沒什麼好說的就是寫就完事了...

leetcode 718 最長重複子陣列

給兩個整數陣列 a 和 b 返回兩個陣列中公共的 長度最長的子陣列的長度。示例 1 輸入 a 1,2,3,2,1 b 3,2,1,4,7 輸出 3 解釋 長度最長的公共子陣列是 3,2,1 說明 1 len a len b 1000 0 a i b i 100 解題思路 定義dp i j 表示以a ...

LeetCode 718 最長重複子陣列

給兩個整數陣列 a 和 b 返回兩個陣列中公共的 長度最長的子陣列的長度。首先想到的就是滑動法,就像卷積一樣,其中乙個序列從另乙個陣列的左邊一直滑到右邊,然後交疊部分挨個比較。分三部分 1.序列a逐漸全部走進序列b。2.序列a完全在b中滑動。3.序列a逐漸離開b class solution def...