跳到主要内容

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;
}
};