LeetCode 926. 将字符串翻转到单调递增(动态规划)
生活随笔
收集整理的這篇文章主要介紹了
LeetCode 926. 将字符串翻转到单调递增(动态规划)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 題目
- 2. 解題
1. 題目
如果一個由 '0' 和 '1' 組成的字符串,是以一些 '0'(可能沒有 '0')后面跟著一些 '1'(也可能沒有 '1')的形式組成的,那么該字符串是單調遞增的。
我們給出一個由字符 '0' 和 '1' 組成的字符串 S,我們可以將任何 '0' 翻轉為 '1' 或者將 '1' 翻轉為 '0'。
返回使 S 單調遞增的最小翻轉次數。
示例 1: 輸入:"00110" 輸出:1 解釋:我們翻轉最后一位得到 00111.示例 2: 輸入:"010110" 輸出:2 解釋:我們翻轉得到 011111,或者是 000111。示例 3: 輸入:"00011000" 輸出:2 解釋:我們翻轉得到 00000000。提示: 1 <= S.length <= 20000 S 中只包含字符 '0' 和 '1'來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/flip-string-to-monotone-increasing
著作權歸領扣網絡所有。商業轉載請聯系官方授權,非商業轉載請注明出處。
2. 解題
- 動態規劃,dp0[i]表示在相應字符處以0結束的最小翻轉次數
- dp1[i]表示在相應字符處以1結束的最小翻轉次數
- 注意預處理得到前綴 1 的個數,見注釋
12 ms 9.1 MB
我的CSDN博客地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!
總結
以上是生活随笔為你收集整理的LeetCode 926. 将字符串翻转到单调递增(动态规划)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 牛客 String II
- 下一篇: LeetCode 668. 乘法表中第k