牛客: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就好了;

相关推荐
ZWZhangYu10 小时前
从 Dify 实践理解大模型上下文缓存
java·后端·spring
揽星河..10 小时前
【C语言】分支和循环
c语言·c++·算法
小熊恋旧10 小时前
Python 面向对象编程:方法、属性、继承与多态详解
开发语言·python
云边云科技_云网融合10 小时前
面向汽车零部件制造业场景的解决方案 | 70 秒:一台车下线的时间里,藏着五张网
开发语言·汽车·php
Evand J10 小时前
【PMSM滤波例程2】PMSM未知负载转矩观测EKF。MATLAB例程(负载增广EKF与实际仿真结果)。附下载链接
开发语言·matlab·电机
小羊没烦恼!10 小时前
关于分布式锁原理的一些学习与思考-redis分布式锁,zookeeper分布式锁
java·服务器·网络·学习·负载均衡
will_net10 小时前
apollo 站点部署&C#接入
开发语言·c#·apollo
晗夜未央11 小时前
任务队列反复失败,先分清重试、阻塞和结果待核对
开发语言·javascript
熊猫钓鱼>_>11 小时前
四种书签,一条时间线:一个读书 App 的记忆颗粒与它的边界案例【鸿蒙心迹】
开发语言·华为·ai编程·harmonyos·鸿蒙·openharmony·鸿蒙pc
Fuyo_111911 小时前
C++ AVL树保姆级详解:从平衡因子到四大旋转机制
java·c++·算法