华为OD机试 - 人数最多的站点(Java 2024 E卷 100分)

news2024/10/9 10:41:20

在这里插入图片描述

华为OD机试 2024E卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)》。

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

公园园区提供小火车单向通行,从园区站点编号最小到最大通行(如1→2→3→4→1),然后供员工在各个办公园区穿梭。通过对公司N个员工调研统计到每个员工的坐车区间,包含前后站点,请设计一个程序计算出小火车在哪个园区站点时人数最多。

二、输入描述

第1行:为调研员工人数。

第2行开始:为每个员工的上车站点和下车站点。

使用数字代表每个园区且为整数分割,如3表示从第3个园区上车,在第5个园区下车。

三、输出描述

人数最多时的园区站点编号,最多人数同时出现在的园区站点最小的园区站点。

四、测试用例

测试用例1:

1、输入

3
1 3
2 4
3 1

2、输出

3

3、说明

测试用例2:

1、输入

5
2 5
3 6
1 4
5 2
4 1

2、输出

4

3、说明

五、解题思路

我们需要找出在小火车经过的所有园区站点中,乘客数量最多的站点编号。为了高效计算每个站点的乘客数量,可以采用差分数组和前缀和的方法。

  1. 输入处理:首先读取员工人数N,然后读取每位员工的上车站点和下车站点。
  2. 确定最大站点编号:遍历所有上车和下车站点,找出最大的站点编号M,以便初始化差分数组。
  3. 差分数组初始化:创建一个长度为M+2的差分数组,用于记录每个站点乘客数量的变化。
  4. 处理每位员工的乘车区间:
    • 如果上车站点 ≤ 下车站点,表示乘客在区间内直行,不涉及环形绕行。
    • 在上车站点位置增加1,在下车站点的下一个位置减少1。
    • 如果上车站点 > 下车站点,表示乘客需要绕行一圈。
    • 在上车站点位置增加1,在最大站点的下一个位置减少1。
    • 在第1站点位置增加1,在下车站点的下一个位置减少1。
  5. 计算前缀和:通过遍历差分数组,累加得到每个站点的实际乘客数量。
  6. 找出最大乘客数量的站点:遍历前缀和数组,记录乘客数量最多的站点编号,若有多个站点数量相同,则选择编号最小的站点。

六、Java算法源码

public class OdTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 读取员工人数
        int N = scanner.nextInt();

        // 初始化数组存储上车和下车站点
        int[][] intervals = new int[N][2];
        int maxStation = 0;

        // 读取每位员工的上车和下车站点,并找到最大站点编号
        for (int i = 0; i < N; i++) {
            intervals[i][0] = scanner.nextInt(); // 上车站点
            intervals[i][1] = scanner.nextInt(); // 下车站点
            if (intervals[i][0] > maxStation) {
                maxStation = intervals[i][0];
            }
            if (intervals[i][1] > maxStation) {
                maxStation = intervals[i][1];
            }
        }

        // 初始化差分数组
        int[] diff = new int[maxStation + 2];

        // 处理每位员工的乘车区间
        for (int i = 0; i < N; i++) {
            int start = intervals[i][0];
            int end = intervals[i][1];
            if (start <= end) {
                // 区间不绕行
                diff[start] += 1;
                diff[end + 1] -= 1;
            } else {
                // 区间绕行一圈
                diff[start] += 1;
                diff[maxStation + 1] -= 1;
                diff[1] += 1;
                diff[end + 1] -= 1;
            }
        }

        // 计算前缀和,得到每个站点的乘客数量
        int maxCount = 0;
        int resultStation = 1;
        int current = 0;
        for (int i = 1; i <= maxStation; i++) {
            current += diff[i];
            if (current > maxCount) {
                maxCount = current;
                resultStation = i;
            }
        }

        // 输出结果
        System.out.println(resultStation);

        scanner.close();
    }
}

七、效果展示

1、输入

4
1 2
2 3
3 4
4 1

2、输出

1

3、说明

在这里插入图片描述


🏆下一篇:华为OD机试 - 简易内存池 - 逻辑分析(Java 2024 E卷 200分)

🏆本文收录于,华为OD机试(JAVA)真题(E卷+D卷+A卷+B卷+C卷)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

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

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

相关文章

知识付费市场的前景 集师小程序 集师知识付费服务 集师知识付费体系

在数字化时代的2020年代中&#xff0c;知识付费市场如同一颗璀璨的新星&#xff0c;正在迅速崛起并改变着人们的学习方式和消费习惯。这一市场的繁荣&#xff0c;不仅得益于互联网技术的飞速发展&#xff0c;更源于人们对高质量、个性化知识内容的强烈需求。 以前知识付费从最初…

MySQL从主库恢复从库

主库备份数据&#xff0c;拷贝至从节点 1.1 备份数据 sudo python /data/apps/xtrabackup/script/xtrabackup.py -m full 备份目录为&#xff1a; /data/mysql_bakcup/<port>/<date>/full_<date> 例&#xff1a;/data/mysql_backup/13306/20231124/full_1640…

Kubernetes(K8s)部署

主机名ip角色docker-harbor.revkarl.org172.25.254.250harbor仓库k8s-master172.25.254.100master&#xff0c;k8s集群控制节点k8s-node1172.25.254.10worker&#xff0c;k8s集群工作节点k8s-node2172.25.254.20worker&#xff0c;k8s集群工作节点 注意&#xff1a; 所有节点禁…

【答疑解惑】图文深入详解undo和redo的区别及其底层逻辑

题记&#xff1a;最近有些人问我&#xff0c;undo和redo到底是什么关系&#xff0c;他们中不乏已经入行3-4年的同学&#xff0c;今天咱们就来深入探讨下到底什么是undo和redo&#xff0c;他们分别做什么&#xff0c;底层逻辑原理是什么等等。 1. undo 1.1 undo的存储结构 Un…

通信工程学习:什么是RFID射频识别

RFID&#xff1a;射频识别 RFID射频识别&#xff08;Radio Frequency Identification&#xff09;&#xff0c;又称为无线射频识别&#xff0c;是一种非接触式的自动识别技术。它通过无线电信号来识别特定目标并读写相关数据&#xff0c;而无需在识别系统与特定目标之间建立机械…

亳州自闭症寄宿制学校,关注孩子的学习和生活

在特殊教育领域&#xff0c;自闭症儿童的教育与成长一直是社会各界关注的焦点。近年来&#xff0c;随着对自闭症认识的加深&#xff0c;越来越多的寄宿制学校应运而生&#xff0c;致力于为这些特殊的孩子提供全面、个性化的教育服务。在安徽亳州&#xff0c;这样的学校正努力为…

大数据毕业设计选题推荐-国产电影数据分析-Python数据可视化-Hive-Hadoop-Spark

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

各省常住人口及人口密度面板数据(2000-2022年)

常住人口指在某地区居住超过一定时间&#xff08;通常为半年以上&#xff09;的人口&#xff0c;而人口密度则指每平方千米或每公顷内的常住人口数。数据集的主要指标包括&#xff1a; 省份年份常住人口&#xff08;万人&#xff09;人口密度&#xff08;人/平方公里&#xff…

荣誉|奇点云入选“2024年成长型浙江数商”名单

近期&#xff0c;浙江省经济和信息化厅根据《关于推进浙江数商高质量发展的实施意见》&#xff08;浙制高办〔2024〕21号&#xff09;&#xff0c;在全省范围内遴选在全国具有影响力的10家“领军型浙江数商”企业&#xff0c;以及50家在细分领域有影响力的“成长型浙江数商”企…

GBC律所老牌代理Tory Burch 汤丽柏琦再次维权

案件基本情况起诉时间&#xff1a;2024-9-17案件号&#xff1a;24-cv-08553品牌&#xff1a;Tory Burch原告&#xff1a;River Light v, L.P.原告律所&#xff1a;GBC起诉地&#xff1a;伊利诺伊州北部法院品牌介绍Tory Burch汤丽柏琦是美国奢华时尚生活方式品牌&#xff0c;以…

26.删除有序数组中的重复项

题目::26. 删除有序数组中的重复项 - 力扣&#xff08;LeetCode&#xff09; 思路:只要不和前面的数一样就可以移动指针&#xff0c;进行赋值 代码: class Solution { public:int removeDuplicates(vector<int>& nums) {int slow 0 ;for(int fast 1; fast < …

SPI通信——FPGA学习笔记14

一、简介 SPI(Serial Periphera Interface&#xff0c;串行外围设备接口)通讯协议&#xff0c;是 Motorola 公司提出的一种同步串行接口技术&#xff0c;是一种高速、全双工、同步通信总线&#xff0c;在芯片中只占用四根管脚用来控制及数据传输&#xff0c;广泛用于 EEPROM、F…

【GESP】C++一级练习BCQM3033,略微复杂的计算,国庆七天乐

应该算第一道对小学生来说&#xff0c;计算逻辑稍微复杂一点的题目。多定义几个变量可能对解题过程更有帮助。 题解详见&#xff1a;https://www.coderli.com/gesp-1-bcqm3033/ 【GESP】C一级练习BCQM3033&#xff0c;略微复杂的计算&#xff0c;国庆七天乐 | OneCoder应该算第…

(11)(2.1.4) DroneCAN ESCs

文章目录 前言 1 DroneCAN ESC列表 2 连接到飞行控制器 3 自动驾驶仪设置 4 记录和报告 5 附加资料 前言 Copter、Plane 和 Rover 支持 DroneCAN 电子速度控制器&#xff08;ESC&#xff09;&#xff0c;该控制器允许与自动驾驶仪进行双向通信&#xff0c;从而可能更容易…

Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事

Python中的数据可视化艺术&#xff1a;用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制&#xff0c;更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn&#xff0c;可以将数据转化为清晰、优美的图表&#xff0c;帮助我…

理解计算机系统_程序的机器级表示(二):寄存器,操作数,数据传送,程序栈

前言 以<深入理解计算机系统>(以下称“本书”)内容为基础&#xff0c;对程序的整个过程进行梳理。本书内容对整个计算机系统做了系统性导引,每部分内容都是单独的一门课.学习深度根据自己需要来定 引入 本书第三章&#xff1a;程序的机器级表示内容的理解,这一章内容以汇…

智能电子价签:助力零售效率升级的关键

在竞争日益激烈的零售市场&#xff0c;如何优化运营、提升效率&#xff0c;是每个零售商都在关注的问题。电子价签作为一项创新技术&#xff0c;提供了蒿效的解决方案。今天&#xff0c;我们就来聊聊电子价签如何帮助零售商轻松管理信息、减少人工误差&#xff0c;并展示它在门…

【AI绘画】Midjourney进阶:对称构图详解

博客主页&#xff1a; [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 &#x1f4af;前言&#x1f4af;什么是构图为什么Midjourney要使用构图 &#x1f4af;对称构图特点使用场景提示词书写技巧测试 &#x1f4af;小结 &#x1f4af;前言 通常来学习AI绘画的人可以分为…

遥感影像-语义分割数据集:多源多模态地物多要素数据集详细介绍及训练样本处理流程

原始数据集详情 简介&#xff1a;该数据集由WHU-OPT-SAR数据集整理而来&#xff0c;覆盖面积51448.56公里&#xff0c;分辨率为5米。据我们所知&#xff0c;WHU-OPT-SAR是第一个也是最大的土地利用分类数据集&#xff0c;它融合了高分辨率光学和SAR图像&#xff0c;并进行了充…

非酒精性脂肪性肝炎NASH临床赛道的百米冲刺,谁将成为胜者?

前 言 非酒精性脂肪性肝炎&#xff08;NASH&#xff09;是一种与肥胖、血脂异常、2型糖尿病和代谢综合征密切相关的疾病&#xff0c;可能会发展为肝硬化、终末期肝病甚至肝癌。据美国肝脏基金会统计数据显示&#xff0c;截至2023年8月&#xff0c;美国成年人中有5%的NASH患者…