华为OD机试真题 Java 实现【观看文艺汇演问题】【2023 B卷 100分】,附详细解题思路

news2024/11/27 3:58:12

在这里插入图片描述

一、题目描述

为庆祝中国共产党成立100周年,某公园将举行多场文艺汇演,很多演出都是同时进行。

一个人只能同时观看一场演出,且不能迟到早退。由于演出分散在不同的演出场地,所以连续观看的演出最少要有15分钟的时间间隔。

小明是一个狂热的文艺迷,想观看尽可能多的演出。

现给出演出时间表,请帮助小明计算他最多能观看几场演出。

二、输入描述

第一行为一个数N,表示演出场数,1 <= N <= 1000。

接下来的N行,每行两个空格分割的整数,第一个整数T,表示演出开始时间,第二个整数L,表示演出持续时间。

T和L的单位都是分钟,1 <= T <= 1440、1 <= L <= 180。

三、输出描述

请输出最多能观看的演出场数。

四、解题思路

  1. 将输入的每一行的开始时间和持续时间,改造为开始时间+结束时间,添加到集合timeList中,方便比较;
  2. 对timeList按照开始时间排序;
  3. 如果开始时间相同,则按结束时间排序,这样可以尽可能的看更多的场次;
  4. 定义一个变量能观看的演出数sum;
  5. 顺序第一的第一场演出是必看的,然后从第二场演出开始遍历;
  6. 比较当前演出的开始时间和上一场的结束时间,看是否大于15;
  7. 如果大于等于15,则可以观看,sum++;
  8. 如果小于15,则无法观看当前场次;
  9. 再用上一场的结束时间,去和下一场的开始时间比较,看是否大于等于15,以此类推;
  10. 输出可以观看的场次sum;

五、Java算法源码

public static void main(String[] args) {

    Scanner sc = new Scanner(System.in);

    // 演出场数
    int n = Integer.valueOf(sc.nextLine());
    // 将输入的每一行的开始时间和持续时间,改造为开始时间+结束时间,方便比较;
    List<Integer[]> timeList = new ArrayList<Integer[]>();
    for (int i = 0; i < n; i++) {
        int[] nums = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        Integer[] timeArr = new Integer[2];
        // 演出开始时间
        timeArr[0] = nums[0];
        // 演出结束时间
        timeArr[1] = nums[1] + timeArr[0];
        timeList.add(timeArr);
    }

    timeList.sort((a, b) -> {
        if (a[0] == b[0]) {
            // 演出开始时间相等时,结束时间小的在前
            return a[1] - b[1];
        }
        // 演出开始时间小的在前
        return a[0] - b[0];
    });

    // 能观看的演出数
    int sum = 1;

    // 第一个演出的结束时间
    int end = timeList.get(0)[1];
    // 从第二个演出开始遍历
    for (int i = 1; i < timeList.size(); i++) {
        // 当前演出的开始时间
        int begin = timeList.get(i)[0];
        // 当前演出的结束时间
        int right = timeList.get(i)[1];
        if (begin - end >= 15) {
            // 当前演出的开始时间与上场演出的结束时间相差大于等于15
            // 场次+1
            sum++;
            // 更新结束时间
            end = right;
        } else {
            // 下一场演出无法观看时,取上一场的结束时间为end
            end = Math.min(end, right);
        }
    }

    System.out.println(sum);
}

六、效果展示

1、输入

8
10 20
10 30
40 20
45 20
45 30
75 10
80 10
80 20

2、输出

3

3、说明

输入的时候,为了方便,我就“按照开始时间排序,如果开始时间相同,再安装结束时间排序。”来输入。

  1. 第一场开始时间10,结束时间30;
  2. 按照下一场的开始时间 - 上一场的结束时间 大于等于 15的说法,下一场45 20的可看;
  3. 结束时间变为65,再加15,下一场开始时间大于等于80的场次可看,故80 10可看;
  4. 因此,可以看三场演出;

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【跳房子II】【2023 B卷 100分】,附详细解题思路

🏆本文收录于,华为OD机试(JAVA)(2022&2023)

每一题都有详细的答题思路、详细的代码注释、样例测试,订阅后,专栏内的文章都可看,可加入华为OD刷题群(私信即可),发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/627218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二、Drools WorkBench

一、WorkBench 简介 WorkBench 是 KIE 组件中的元素&#xff0c;也称为 KIE-WB&#xff0c;是 Drools-WB 与 JBPM-WB 的结合体。它是一个可视化的规则编辑器。WorkBench 其实就是一个 war 包&#xff0c;安装到 Tomcat 中就可以运行。使用 WorkBench 可以在浏览器中 创建数据对…

基于jsp+mysql+Spring+mybatis+Springboot的Springboot实现的就业信息管理平台

运行环境: 最好是java jdk 1.8&#xff0c;我在这个平台上运行的。其他版本理论上也可以。 IDE环境&#xff1a; Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以&#xff0c;如果编译器的版本太低&#xff0c;需要升级下编译器&#xff0c;不要弄太低的版本 tomcat服务器环…

教你如何使用自定义测试(Minium)进行微信小程序自动化测试

目录 前言&#xff1a; 一、 编写用例 基本操作 处理小程序API 处理小程序原生控件 数据驱动 二、 执行用例 本地执行 云测服务测试 三、 最佳实践 四、总结 前言&#xff1a; 微信小程序自动化测试是保障小程序质量的重要手段&#xff0c;Minium是一个可为微信小程…

kafka 对 java NIO 的封装

说明 本文基于 kafka 2.7 编写。author JellyfishMIX - github / blog.jellyfishmix.comLICENSE GPL-2.0 java NIO 组件 几个 java NIO 的组件。 Buffer: 缓冲区。这是一个接口&#xff0c;kafka 用它的 ByteBuffer 实现类&#xff0c;配合 SocketChannel 实现读写操作。读…

区块链产业快速发展 和数集团开启区块链应用新时代

UTONMOS区块链游戏要来了。 就在5月底&#xff0c;UTONMOS品牌所属公司上海和数集团在泰国发布了【神念无界】系列的多款国际版链游&#xff0c;包括【神念无界-源起山海】、【北荒传奇】、【神宠岛】、【神农园】等区块链游戏。 以【神念无界-源起山海】为例&#xff0c;其是…

Web、容器化 Native、小程序跨平台!三种跨平台方案对比

前端码农工作几年&#xff0c;从一家公司跳到另一家公司&#xff0c;永远逃不掉的是跨平台需求。除了本身应用在多平台上架的需求之外&#xff0c;资源有限恐怕是最大的原因&#xff0c;跨平台方案确实可以减少重复开发工作&#xff0c;降低成本和节省时间&#xff1b;而且掌握…

从开源到云原生,时序数据库 TDengine 六年回顾精彩纷呈

2023 年 6 月 6 日&#xff0c;涛思数据旗下时序数据库&#xff08;Time Series Database&#xff09; TDengine 迎来六周年庆典&#xff0c;并于北京保利国际广场T2举办了主题为“TDengine 6th Anniversary&#xff1a;Back to The Future”的庆典活动&#xff0c;设置了「TDe…

《Contrastive Learning for Unpaired Image-to-Image Translation》

Contrastive Learning for Unpaired Image-to-Image Translation 1. 摘要2. 介绍3. 相关工作3.1 图像转换、循环一致性3.2 关系保持3.3 深度网络嵌入中的感知相似性3.4 对比表示学习 4. 方法 原文及代码链接 https://github.com/taesungp/contrastive-unpaired-translation 1.…

API之Apifox和Postman工具该如何抉择?

目录 前言 一.功能列表对比 &#xff08;一&#xff09;接口设计与文档管理功能 &#xff08;二&#xff09;接口调试功能对比 &#xff08;三&#xff09;接口mock功能 &#xff08;四&#xff09;接口测试功能 二.团队协作功能 三.Apifox 没有的功能 四.产品价格 前…

代码随想录算法训练营第五十二天|300.最长递增子序列|674. 最长连续递增序列|718. 最长重复子数组

LeetCode300.最长递增子序列 动态规划五部曲&#xff1a; 1&#xff0c;dp[i]的定义&#xff1a;本题中&#xff0c;正确定义dp数组的含义十分重要。dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度。为什么一定表示 “以nums[i]结尾的最长递增子序” &#xff0c…

FP独立站卖家怎么解决收款问题?挑选支付公司有何关注点?

2023年是充满希望又充满挑战的一年。这一年&#xff0c;新冠肺炎疫情恢复&#xff0c;经济慢慢复苏&#xff0c;对做跨境电商的卖家来说是个不错的机遇&#xff1b;但由于chatgpt人工智能的出现&#xff0c;F牌网站被检测出来的几率大大提高……让F牌独立站卖家最头疼的是&…

使用iTerm2打造ssh神器

在日常工作中&#xff0c;经常要通过ssh连接远程服务器&#xff0c;每次连接都输入密码&#xff0c;会比较麻烦。 在Window系统上&#xff0c;我习惯使用xshell管理连接&#xff0c;非常方便。 在MacOS系统上&#xff0c;没有xshell&#xff0c;而一些类似xshell的工具中&#…

vue+elementui+nodejs美容院理发店产品网上商城管理系统0ffvo

在当前的信息化管理浪潮下&#xff0c;我国的各行业不断转向信息化&#xff0c;现代化的高效管理模式。研发新一代美发管理系统&#xff0c;使一直沿袭传统的美发管理模式而产生的管理效率较低&#xff0c;经营管理水平相对滞后等现象得以改善&#xff1b;而这种新型的美容美发…

红外人体感应灯单片机开发方案

近来&#xff0c;红外人体感应灯受到了居家人们关注和喜爱。为此&#xff0c;宇凡微推出了一款低成本红外人体感应灯单片机方案。红外人体感应灯可应用于走廊、床边、楼梯、衣柜等地方&#xff0c;提供柔和照明作用。人来即亮&#xff0c;人走即灭&#xff0c;不受强光影响睡眠…

[游戏开发][Unity]Assetbundle下载篇(7)获取运行时(边玩边下)下载列表

啥是运行时下载清单&#xff1f;现在大多数手游都会有一个边玩边下功能&#xff0c;会提示用户是否开启下载&#xff0c;要XXX流量&#xff0c;如果你下载完了&#xff0c;可能还会有奖励。 疑问&#xff1a;为何要有边玩边下功能&#xff1f; 解答&#xff1a;为了发包的包体…

常见的五种HDMI接口类型,你知道多少?

高清多媒体接口&#xff08;High Definition Multimedia Interface&#xff09;简称HDMI&#xff0c;是一种全数字化视频和声音发送接口&#xff0c;可以 同时发送未压缩的视频及音频信号 &#xff0c;且发送时采用同一条线材&#xff0c;大大简化了系统线路的安装难度&#xf…

java SSM 网上拍卖myeclipse开发mysql数据库springMVC模式java编程计算机网页设计

一、源码特点 java SSM 网上拍卖系统是一套完善的web设计系统&#xff08;系统采用SSM框架进行设计开发&#xff0c;springspringMVCmybatis&#xff09;&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和 数据库&#xff0c;系统主要采用B…

[STJson]一个.Net开源json解析库

创作背景 项目地址: https://debugst.github.io/STJson 在开发过程中难免会遇到需要处理json的时候&#xff0c;但是.Net中自带的库似乎有点一言难尽啊。最后虽然找到了Newstonsoft.Json感觉还不错&#xff0c;但是还是觉得有些不如意的地方&#xff0c;它的功能虽然强大但是…

C语言:编写代码实现,模拟用户登录情景,并且只能登录三次

题目&#xff1a; 编写代码实现&#xff0c;模拟用户登录情景&#xff0c;并且只能登录三次。 只允许输入三次密码&#xff0c; 如果密码正确则提示登录成功&#xff0c; 如果三次均输入错误&#xff0c;则退出程序。 思路&#xff1a; 总体思路&#xff1a; &#xff08;一&a…

MIAOYUN“一云多芯”解决方案获评2023西部信创优秀解决方案

6月7日&#xff0c;由工业和信息化部电子第五研究所主办的“2023西部信息技术应用创新产业生态大会” 在重庆成功举办。会上&#xff0c;2023年西部地区信息技术应用创新优秀解决方案汇编正式发布&#xff0c;成都元来云志科技有限公司&#xff08;简称“MIAOYUN”&#xff09;…