926.将字符串翻转到单调递增
链接:926.将字符串翻转到单调递增
难度:Medium
标签:字符串、动态规划
简介:返回使 S 单调递增的最小翻转次数。
题解 1 - cpp
- 编辑时间:2022-01-07
- 执行用时:20ms
- 内存消耗:10.8MB
- 编程语言:cpp
- 解法介绍:对于每个位置统计前面有几个 1,后面有几个 0,和为要翻转的总数。
class Solution {
   public:
    int minFlipsMonoIncr(string s) {
        int cnt0 = 0, cnt1 = 0, ans;
        for (auto &ch : s)
            if (ch == '0') cnt0++;
        ans = cnt0;
        for (auto &ch : s) {
            if (ch == '0')
                cnt0--;
            else
                cnt1++;
            ans = min(ans, cnt0 + cnt1);
        }
        return ans;
    }
};