926.将字符串翻转到单调递增
将字符串翻转到单调递增
如果一个二进制字符串,是以一些 0(可能没有 0)后面跟着一些 1(也可能没有 1)的形式组成的,那么该字符串是 单调递增 的。
给你一个二进制字符串 s,你可以将任何 0 翻转为 1 或者将 1 翻转为 0。
返回使 s 单调递增的最小翻转次数。
示例 1:
输入:s = “00110”
输出:1
示例 2:
输入:s = “010110”
输出:2
提示:
- 1 <= s.length <= 10^5
- s[i] 为 ‘0’ 或 ‘1’
解析
使用动态规划,维护两个状态:dp0 表示当前位置为 0 的最小翻转次数,dp1 表示当前位置为 1 的最小翻转次数。
1 | var minFlipsMonoIncr = function (s) { |
时间复杂度 O(n),空间复杂度 O(1)。
926.将字符串翻转到单调递增
https://leetcode.lz5z.com/926.flip-string-to-monotone-increasing/