動態規劃 dp狀態的壓縮

2022-07-25 20:27:07 字數 703 閱讀 2418

1312. 讓字串成為回文串的最少插入次數

給你乙個字串 s ,每一次操作你都可以在字串的任意位置插入任意字元。

請你返回讓 s 成為回文串的 最少操作次數 。

「回文串」是正讀和反讀都相同的字串。

示例 1:

輸入:s = "zzazz"

輸出:0

解釋:字串 "zzazz" 已經是回文串了,所以不需要做任何插入操作。

示例 2:

輸入:s = "mbadm"

輸出:2

解釋:字串可變為 "mbdadbm" 或者 "mdbabdm" 。

示例 3:

輸入:s = "leetcode"

輸出:5

解釋:插入 5 個字元後字串變為 "leetcodocteel" 。

示例 4:

輸入:s = "g"

輸出:0

示例 5:

輸入:s = "no"

輸出:1

1 <= s.length <= 500

s 中所有字元都是小寫字母。

首先是常規的二維dp解法,比較容易理解。

class solution else

// 到下一輪迴圈,pre 就是 dp[i+1][j-1] 了

pre=temp;}}

return dp[length-1];

}}

動態規劃 狀態壓縮dp

if cnt 1 return false 用來判斷像01這種最後是0的情況 return true int main return 0 預處理所有狀態是否為合法狀態 include include include using namespace std typedef long long ll c...

狀態壓縮動態規劃(狀壓DP)

狀態壓縮動態規劃就是我們常說的狀壓dp,前兩天某廠實習生二面面試官隨手就給我抽了一道狀壓dp的題,我根本沒思路,sorry就寫了一行注釋。然後leetcode周賽最後一題又碰到了狀壓dp的題目,我一定要搞定這個型別的問題。加油加油 狀壓dp說簡單也簡單,基本上就是用一串二進位制樹來表示當前情況 的狀...

任務安排 動態規劃dp 狀態壓縮

馬上假期就要結束了,zjm還有 n 個作業,完成某個作業需要一定的時間,而且每個作業有乙個截止時間,若超過截止時間,一天就要扣一分。zjm想知道如何安排做作業,使得扣的分數最少。tips 如果開始做某個作業,就必須把這個作業做完了,才能做下乙個作業。有多組測試資料。第一行乙個整數表示測試資料的組數 ...