当前位置: 首页 > news >正文

华为OD-D卷找座位

在一个大型体育场内举办了一场大型活动,由于疫情防控的需要,要求每位观众的必须间隔至少一个空位才允许落座。现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出,在不移动现有观众座位的情况下,最多还能坐下多少名观众。

输入描述:

一个数组,用来标识某一排座位中,每个座位是否已经坐人。0表示该座位没有坐人,1表示该座位已经坐人。

输出描述:

整数,在不移动现有观众座位的情况下,最多还能坐下多少名观众。

备注:

1<=数组长度<=10000

题目解析:只要保证第i个位置的i-1和i+1都是空的就可以坐,只需要特殊处理首位和末尾就可以!

import java.util.*;public class Main {public static void main(String[] args) {
//        int[] nums = new int[]{1, 0, 0, 0, 1};// 处理数据Scanner scanner = new Scanner(System.in);String string1 = scanner.next();int[] nums = new int[string1.length()];for (int i = 0; i < nums.length; i++) {nums[i] = string1.charAt(i) - '0';}if (nums.length == 1) {if (nums[0] == 0) {System.out.println(1);} else {System.out.println(0);}return;}int result = 0;for (int i = 0; i < nums.length; i++) {if (nums[i] == 0) {// 依次处理首位,中间,末尾,注意顺序if (i == 0 && nums[i + 1] == 0) {nums[i] = 1;result++;} else if (i > 0 && i < nums.length - 1 && nums[i + 1] == 0 && nums[i - 1] == 0) {nums[i] = 1;result++;} else if (i == nums.length - 1 && nums[i - 1] == 0) {nums[i] = 1;result++;}}}System.out.println(result);}
}

http://www.lryc.cn/news/421575.html

相关文章:

  • Go sdk下载和配置环境变量
  • qt的项目结构
  • 【NLP】文本特征处理:n-gram特征和文本长度规范
  • ESP32人脸识别开发 ---partitions.csv配置的一些说明(五)
  • 【学习笔记】Matlab和python双语言的学习(图论最短路径)
  • vue.config.js 配置 devserve 配置
  • 不入耳耳机什么牌子性价比高?五大年度必选款揭秘
  • SQL Zoo 6.The JOIN operation
  • 视频教程:Vue3移动端抽屉弹层组件实战
  • CSS 的 BFC(块级格式化上下文)
  • 【2023年】云计算金砖牛刀小试2
  • python--将mysql建表语句转换成hive建表语句
  • 异步调用实践:Async,Future, TaskExecutor、EventListener
  • Flask 异常处理
  • 【海思SS626 | 内存管理】海思芯片的OS内存、MMZ内存设置
  • linux crontab没有按照规则执行排查
  • Cloudflare的D1使用技巧
  • 解决端口号被占用问题
  • 如何在linux上部署zabbix监控工具
  • vulnhub系列:sp eric
  • JVM二:JVM类加载机制
  • 对于springboot无法连接redis解决方案
  • 关于android中的各种尺寸与计算
  • MySQL避免索引失效的方法详细介绍
  • 【Java】深入了解 Java 的 charAt() 方法
  • Linux 下 ETCD 安装、配置与命令使用总结
  • C++笔试练习笔记【7】:力扣 91. 解码方法 动态规划练习
  • 【antd】antd3的表单校验不提示报错信息
  • Game AI ——游戏人工智能(逻辑及剧情生成)
  • 算法基础知识——核函数