動態規劃 編輯距離

2022-06-19 20:57:13 字數 1197 閱讀 1069

leetcode72題:

1. 根據str1和str2的長度構建空矩陣

2. 將矩陣第一行和第二行賦上步數,如下,從左往右看,數字代表由最左邊空字元''變為'j','ja',......,'jarrry'等的操作總步數

3. 從矩陣第二行開始遍歷(即range(1,len(str1)+1)),str1的每個字元與str2中的'j','ja',......,'jarrry'比較

4. 最終的總步數為matrix[len(str1)][len(str2)],即矩陣右下角的數字

下圖是動態規劃路徑:

注意從1開始

for j in range(1, len2+1): #

注意從1開始

d = 0 if str1[i-1]==str2[j-1] else 1matrix[i][j] = min(matrix[i][j-1]+1, matrix[i-1][j]+1, matrix[i-1][j-1]+d)

return matrix[len1][len2]

1. longest increasing subsequence(lis)問題,最長上公升子序

2. 最長公共子序/子串

3. 乙個陣列有 n 個元素,求連續子陣列的最大和

4. 有乙個x*y的網格,小團要在此網格上從左上角到右下角,只能走格點且只能向右或向下走。請設計乙個演算法,計算小團有多少種走法。給定兩個正整數int x,int y,請返回小團的走法數目。

動態規劃 編輯距離

1.實踐題目 編輯距離 2.問題描述 設a和b是2個字串。要用最少的字元操作將字串a轉換為字串b。這裡所說的字元操作包括 1 刪除乙個字元 2 插入乙個字元 3 將乙個字元改為另乙個字元。將字串a變換為字串b所用的最少字元運算元稱為字串a到 b的編輯距離,記為d a,b 對於給定的字串a和字串b,計...

動態規劃 編輯距離

給定兩個序列x和y,求從乙個序列到另乙個序列所需變換的最小次數,這裡的變換包括刪除,新增和替換,每次只對乙個元素進行操作。演算法序言 這個題目有點像之前寫的最長公共子串行問題,也是用動態規劃的演算法。能夠應用動態規劃的題目有乙個特點就是具有最優子結構,就是整個問題的最優解會包含子問題的最優解,那麼我...

動態規劃 編輯距離

將乙個字串變為另乙個字串最小操作次數,您對單詞允許以下3種操作 a 插入字元 b 刪除字元 c 替換字元 例如 a horse 變成 b ros 想法 coding utf 8 def char array replace array1,array2 row len array1 col len a...