LeetCode刷題 動態規劃(三)

2021-10-13 18:40:16 字數 2171 閱讀 4619

最長公共子串行問題,最基本的問題是在兩個字串中找出最長公共字串。方法是使用雙指標 i,j遍歷兩個字串,建立二維 dp 陣列,通過填表獲得結果。

1143,最長公共子串行,medium

583,兩個字串的刪除操作,medium

712,兩個字串的最小ascii刪除和,medium

1143,最長公共子串行,medium

給定兩個字串 text1 和 text2,返回這兩個字串的最長公共子串行的長度。

乙個字串的 子串行 是指這樣乙個新的字串:它是由原字串在不改變字元的相對順序的情況下刪除某些字元(也可以不刪除任何字元)後組成的新字串。

例如,「ace」 是 「abcde」 的子串行,但 「aec」 不是 「abcde」 的子串行。兩個字串的「公共子串行」是這兩個字串所共同擁有的子串行。

若這兩個字串沒有公共子串行,則返回 0。

示例 1:

輸入:text1 = "abcde", text2 = "ace" 

輸出:3

解釋:最長公共子串行是 "ace",它的長度為 3。

示例 2:

輸入:text1 = "abc", text2 = "abc"

輸出:3

解釋:最長公共子串行是 "abc",它的長度為 3。

示例 3:

輸入:text1 = "abc", text2 = "def"

輸出:0

解釋:兩個字串沒有公共子串行,返回 0。

**:

class

solution

else}}

return dp[m]

[n];

}}

583,兩個字串的刪除操作,medium

給定兩個單詞word1word2,找到使得word1word2相同所需的最小步數,每步可以刪除任意乙個字串中的乙個字元。

示例:

輸入: "sea", "eat"

輸出: 2

解釋: 第一步將"sea"變為"ea",第二步將"eat"變為"ea"

712,兩個字串的最小ascii刪除和,medium

給定兩個字串s1, s2,找到使兩個字串相等所需刪除字元的ascii值的最小和。

示例 1:

輸入: s1 = "sea", s2 = "eat"

輸出: 231

解釋: 在 "sea" 中刪除 "s" 並將 "s" 的值(115)加入總和。

在 "eat" 中刪除 "t" 並將 116 加入總和。

結束時,兩個字串相等,115 + 116 = 231 就是符合條件的最小和。

示例 2:

輸入: s1 = "delete", s2 = "leet"

輸出: 403

解釋: 在 "delete" 中刪除 "dee" 字串變成 "let",

將 100[d]+101[e]+101[e] 加入總和。在 "leet" 中刪除 "e" 將 101[e] 加入總和。

結束時,兩個字串都等於 "let",結果即為 100+101+101+101 = 403 。

如果改為將兩個字串轉換為 "lee" 或 "eet",我們會得到 433 或 417 的結果,比答案更大。

注意:

0 < s1.length, s2.length <= 1000

所有字串中的字元ascii值在[97, 122]之間。

**:

class

solution

else

maxsum = math.

max(maxsum, dp[i]

[j]);}

}for

(int i =

0; i < n; i++

) sum += str2[i]

;return sum - maxsum *2;

}}

leetcode刷題 動態規劃

動態規劃 英語 dynamic programming,簡稱 dp 是一種在數學 管理科學 電腦科學 經濟學和生物資訊學中使用的,通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。動態規劃常常適用於有重疊子問題和最優子結構性質的問題,動態規劃方法所耗時間往往遠少於樸素解法。動態規劃背後的基...

leetcode演算法刷題 五 動態規劃 三

今天的題目不是leetcode上面的。只是覺得動態規劃還是不算很熟練,就接著找了點dp的題練練 題目的意思 傳入乙個陣列,要求出它的最長遞增子串行的長度。例如 如在序列1,1,2,3,4,5,6,7中,最長遞增序列為1,2,4,6,所以長度為4。分析 這道題我們可以用動態規劃來做。對於陣列的前i個元...

Leetcode刷題 190713 動態規劃

輸入乙個陣列,陣列中每個元素代表乙個房子,我們作為robber可以對每個房子進行rob。但是規定不能同時又兩個相鄰的房子被robbed。陣列中每個元素的值代表房子的價值,需要我們輸出經過rob後最大的收益是多少。很明顯考察的是動態規劃,每檢查乙個房子都有兩種狀態即rob和no rob。對應的價值方程...