1 Star 0 Fork 0

xiangxiang/LeetCode-NOTES

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
solution.cpp 1.05 KB
一键复制 编辑 原始数据 按行查看 历史
默然 提交于 7年前 . 添加496, 498, 503等题
class Solution {
public:
int minFlipsMonoIncr(string S) {
vector<pair<int, int> > group;
int t;
int last = S[0]=='1'?1:0;
group.push_back(pair<int,int>(last, 1));
for(int i=1;i<S.size();i++){
t = S[i]=='1'?1:0;
if(t == last)
group[group.size()-1].second += 1;
else
group.push_back(pair<int,int>(t, 1));
last = t;
}
vector<int> leftOne(group.size(),0), rightZero(group.size(),0);
for(int i=1;i<group.size();i++){
leftOne[i] = group[i-1].first==1?group[i-1].second:0;
leftOne[i] += leftOne[i-1];
}
for(int i=group.size()-2;i>=0;i--){
rightZero[i] = group[i+1].first==0?group[i+1].second:0;
rightZero[i] += rightZero[i+1];
}
int min = S.size();
for(int i=0;i<group.size();i++)
if(leftOne[i] + rightZero[i] < min)
min = leftOne[i] + rightZero[i];
return min;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/xiangxiang920/LeetCode-NOTES.git
git@gitee.com:xiangxiang920/LeetCode-NOTES.git
xiangxiang920
LeetCode-NOTES
LeetCode-NOTES
master

搜索帮助