LeetCode 664 奇怪的印表機

2022-05-21 23:06:13 字數 498 閱讀 7839

動態規劃

先去重, 再考慮狀態轉移

對於每個位置字元分別有兩種狀態, 獨立列印或一同列印, 再考慮到列印次數, 一維的\(dp(i)\)不夠描述狀態

再加一維, 每次連續列印時只考慮某2個字元屬於同乙個列印批次, 列出狀態轉移方程

\[dp(st, ed) = \begin

1 + dp(st+1, ed) & \\

dp(st, i-1) + dp(i+1, ed) & \text

\end \\

\]為了表示方便, 這裡\(\left\\)

最後使用遞迴方便地套上狀態轉移方程

class solution 

// [st, ed]

int dp(string &s, unsigned long st, unsigned long ed)

dpary[st][ed] = len;

return len;

}};

Leetcode 664 奇怪的印表機

有台奇怪的印表機有以下兩個特殊要求 印表機每次只能列印同乙個字串行。每次可以在任意起始和結束位置列印新字元,並且會覆蓋掉原來已有的字元。給定乙個只包含小寫英文本母的字串,你的任務是計算這個印表機列印它需要的最少次數。示例 1 輸入 aaabbb 輸出 2 解釋 首先列印 aaa 然後列印 bbb 示...

奇怪的印表機 LeetCode664

有台奇怪的印表機有以下兩個特殊要求 印表機每次只能列印同乙個字串行。每次可以在任意起始和結束位置列印新字元,並且會覆蓋掉原來已有的字元。給定乙個只包含小寫英文本母的字串,你的任務是計算這個印表機列印它需要的最少次數。示例 1 輸入 aaabbb 輸出 2 解釋 首先列印 aaa 然後列印 bbb 示...

動態規劃 leetcode 664 奇怪的印表機

有台奇怪的印表機有以下兩個特殊要求 印表機每次只能列印同乙個字串行。每次可以在任意起始和結束位置列印新字元,並且會覆蓋掉原來已有的字元。給定乙個只包含小寫英文本母的字串,你的任務是計算這個印表機列印它需要的最少次數。示例 1 輸入 aaabbb 輸出 2 解釋 首先列印 aaa 然後列印 bbb 示...