2024/10/15灵茶题单 滑动窗口
This commit is contained in:
parent
f0d53cc2be
commit
41276c624f
|
@ -0,0 +1,55 @@
|
||||||
|
package com.cool.ling_cha_mount.sliding_windows;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created with IntelliJ IDEA.
|
||||||
|
*
|
||||||
|
* @Author: Cool
|
||||||
|
* @Date: 2024/10/15/14:27
|
||||||
|
* @Description:
|
||||||
|
*/
|
||||||
|
public class Num1888 {
|
||||||
|
public int minFlips1(String s) {
|
||||||
|
int len = s.length();
|
||||||
|
StringBuilder sb1 = new StringBuilder();
|
||||||
|
StringBuilder sb2 = new StringBuilder();
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
sb1.append(i % 2 == 0 ? '1' : '0');
|
||||||
|
sb2.append(i % 2 == 0 ? '0' : '1');
|
||||||
|
}
|
||||||
|
int[] count1 = new int[len];
|
||||||
|
int[] count2 = new int[len];
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
count1[i] = (i > 0 ? count1[i - 1] : 0) + (s.charAt(i) == sb1.charAt(i) ? 0 : 1);
|
||||||
|
count2[i] = (i > 0 ? count2[i - 1] : 0) + (s.charAt(i) == sb2.charAt(i) ? 0 : 1);
|
||||||
|
}
|
||||||
|
int res = Math.min(count1[len - 1], count2[len - 1]);
|
||||||
|
if (len % 2 == 1) {
|
||||||
|
for (int i = 0; i < len; i++) {
|
||||||
|
res = Math.min(res, count1[i] + count2[len - 1] - count2[i]);
|
||||||
|
res = Math.min(res, count2[i] + count1[len - 1] - count1[i]);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
} else {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
public int minFlips(String s) {
|
||||||
|
int len = s.length();
|
||||||
|
int[] target=new int[]{'0','1'};
|
||||||
|
int count=0;
|
||||||
|
for(int i=0;i<len;i++){
|
||||||
|
count+=s.charAt(i)^target[i%2];
|
||||||
|
}
|
||||||
|
int min=Math.min(count,len-count);
|
||||||
|
if(len%2==0){
|
||||||
|
return min;
|
||||||
|
}else{
|
||||||
|
for(int i=1;i<len;i++){
|
||||||
|
count-=s.charAt(i-1)^target[(i-1)%2];
|
||||||
|
count+=s.charAt(i-1)^target[i%2];
|
||||||
|
min=Math.min(min,Math.min(count,len-count));
|
||||||
|
}
|
||||||
|
return min;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue