關於動態規劃題目的練習和總結

2021-09-29 16:46:06 字數 680 閱讀 1660

因為很多私募的演算法題都涉及了動態規劃類的題目,而且最近也在學習nlp在做乙個簡單的問答系統,也需要用到動態規劃所以就開始刷起動態規劃的題目了

字串最小替換次數

已知s1 和 s2兩個字串,操作有插入,刪除,替換,每次只能操作乙個字元,求吧s1變成s2的最小次數,比如s1="abd",s2="ad",s1去除字元b就能變成s2

def minimum_operation(s1,s2):

if s1 == s2:

return 0

if len(s2) == 0:

return len(s1)

if len(s1) == 0:

return len(s2)

if s1[-1] == s2[-1]:

return minimum_operation(s1[:-1],s2[:-1])

else:

#插入乙個字元到s1

opt_1 = minimum_operation(s1,s2[:-1])+1

#刪除s1最後乙個字元

opt_2 = minimum_operation(s1[:-1],s2)+1

#替換s1最後乙個字元

opt_3 = minimum_operation(s1[:-1],s2[:-1])+1

return min(opt_1,opt_2,opt_3)

動態規劃題目練習

目錄 01揹包 300.最長上公升子串行 198.打家劫舍 62.不同路徑 64.最小路徑和 72.編輯距離 做動態規劃題很重要的三個步驟 第一步驟 定義陣列元素的含義,確定狀態首先提取 最後一步 用乙個陣列,來儲存歷史陣列,假設用一維陣列 dp 吧。這個時候有乙個非常非常重要的點,就是規定你這個陣...

動態規劃經典題目總結

題意 給定乙個由n行數字組成的數字三角形 試設計乙個演算法,計算出從三角形的頂至底的一條路徑,使該路徑經過的數字總和最大。對於給定的由n行數字組成的數字三角形,計算從三角形的頂至底的路徑經過的數字和的最大值。input 輸入資料的第1行是數字三角形的行數n,1 n 100。接下來n行是數字三角形各行...

動態規劃 求最大子序和 動態規劃題目總結

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。解決動態規劃問題 主要分為以下三步 目標 objection 定義狀態 define sta...