From 41276c624fa6b0b47cb5a58018db4a73e5df3360 Mon Sep 17 00:00:00 2001 From: Cool <747682928@qq.com> Date: Wed, 16 Oct 2024 16:19:07 +0800 Subject: [PATCH] =?UTF-8?q?2024/10/15=E7=81=B5=E8=8C=B6=E9=A2=98=E5=8D=95?= =?UTF-8?q?=20=E6=BB=91=E5=8A=A8=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sliding_windows/Num1888.java | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1888.java diff --git a/src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1888.java b/src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1888.java new file mode 100644 index 0000000..76b4910 --- /dev/null +++ b/src/main/java/com/cool/ling_cha_mount/sliding_windows/Num1888.java @@ -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