牛客:HJ170 01序列

java 复制代码
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();
        int count = 0;
        int res = 0;
        for(int i = 0; i < num; i++){
            int n = in .nextInt();
            if(n == 0){
                count++;
            } else {
                if(count > 0){
                    res += (count - 1) / 2;
                }
                count = 0;
            }
        }
        if(count != 0) {
            res += count / 2;
        }
        int tar = in.nextInt();
        if(tar > res){
            System.out.println(false);
        } else {
            System.out.println(true);
        }
    }
}

描述

给定一个数组 arrayarray ,数组中只包含 11 和 00 ,且数组中的 11 都不相邻。

输入一个数 nn ,问能否在将数组中 nn 个 00 替代换成 11 后不破坏 11 都不相邻的条件。

例1 array=1,0,0,0,1,n=1 输出 true

例2 array=1,0,0,0,1,n=2 输出 false

输入描述:

输入一个数 m(1≤m≤105)m(1≤m≤105) 表示 arrayarray 的长度

第二行 mm 个数 00 或 11 表示该位置数组中的元素是 00 还是 11

第三行输入一个数 nn

输出描述:

输出 true 或 false

思路:

1、统计1和1之间0的个数;

2、3 -> 1 2->0 4->1 5->2,可修改数量为中间0的个数-1然后除以2;

3、需要考虑末尾不是1的情况,这种直接用0的个数除2就好了;

相关推荐
朝朝辞暮i1 小时前
C++ 第 33 课:事件循环——spin() 到底在干什么
开发语言·c++·算法
野生技术架构师1 小时前
牛客网互联网大厂 Java 高频面试题整理(持续更新)
java·开发语言
殷色玫瑰1 小时前
AVL树:从平衡因子到四种旋转的完整实现
c语言·数据结构·c++·算法·visualstudio
小师兄吃牛肉2 小时前
Java语法 | 多重循环
java·开发语言·python
Han.miracle2 小时前
MySQL InnoDB:MVCC、记录锁、间隙锁、二级索引MVCC底层原理
java·开发语言
.YM.Z2 小时前
C++——【红黑树】原理详解:定义、性质、插入变色与旋转实现
开发语言·c++
jidaowansui2 小时前
B3643 图的存储———>数组模拟邻接矩阵
算法
不停喝水2 小时前
【前端转全栈java速通课】 项目实战④7-11节 操作数据库-登录-注册-修改密码-注销-mubatis-plus简化crud-
java·前端·数据库
y1su3 小时前
Leetcode 二分模板
java·数据结构·算法·leetcode·排序算法