public int minFlipsMonoIncr(String s) {
int n=s.length();
int[][] nums=new int[2][n+2];//记录某个字符前面1的个数,以及后面0的个数
for(int i=0,j=n-1;i<n&&j>=0;i++,j--){
nums[0][i+1]=nums[0][i];
if(s.charAt(i)=='1')
nums[0][i+1]++;
nums[1][j+1]=nums[1][j+2];
if(s.charAt(j)=='0')
nums[1][j+1]++;
}
int ans=100000;
for(int i=1;i<=n;i++){
ans=Math.min(ans,nums[0][i]+nums[1][i]-1);//找到最小次数
}
return ans;
}
03-23
551
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-24
864
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)