题解 | #刷墙#

刷墙

http://www.nowcoder.com/practice/748b891f208744a7b1f98cb4c45bde11

题比较坑

import java.io.*;

public class Main {
  public static void main(String[] args) throws IOException {
      BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
      int N = Integer.parseInt(br.readLine().trim());
      String line = br.readLine().trim();
      int[] nums = new int[N];
    
      for (int i = 0; i < N; i++) {
          nums[i] = line.charAt(i) - '0';
      }
       
      if (N <= 0) System.out.println(0);
      else System.out.println(doIt(N, nums));
  }
       
  static int doIt(int N, int[] nums) {
      int[] temp = new int[N];
      temp[0] = nums[0];
      for (int i = 1; i < N; i++) {
          temp[i] = temp[i - 1] + nums[i];
      }
      // temp 保存 0 ~ i 区间的 1 的总和
      int ans = Math.min(temp[N - 1], N - temp[N - 1]);
      // ans 为 蓝->红 或 红->蓝 的最小值
      for (int i = 0; i < N; i++) {
          // i + 1 - temp[i] : 0 到 i 左边 0 的个数
          // 左边总元素个数减去 temp 的 i 对应 1 的值
          // temp[n - 1] - temp[i] 为 右边 1 的个数
          ans = Math.min(ans, i + 1 - temp[i] + temp[N - 1] - temp[i]);
      }
      return ans;
  }
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-11 17:10
什么素质,我请问呢,要掉小珍珠了。。。又憋屈又生气
苍蓝星上艾露:给它们能的,一群dinner牛马挥刀向更弱者罢了。我写的开源求职AI co-pilot工具,优化你的简历,找到你匹配的岗位,定制你的简历,并让你做好面试准备https://github.com/weicanie/prisma-ai
点赞 评论 收藏
分享
07-14 12:29
门头沟学院 Java
后端岗,实习三周感觉有点想跑路了,担心秋招被拉黑,有没有佬是字节HR知道情况的
从零开始的转码生活:你实习三周都想跑路,将来拿到offer真的愿意在这干十几二十年吗
投递字节跳动等公司8个岗位
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:16
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务