华为OD机试 - ABR 车路协同场景 - (Java 2023 B卷 100分)

2023-08-20 15:40:04

在这里插入图片描述

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

专栏导读

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

1、问题

数轴×有两个点的序列A={A1,A2,…Am}和B={B1,B2,.Bn},A和Bj均为正整数,A、B已经从小到大排好序,A、B均肯定不为空,给定一个距离R(正整数),列出同时满足如下条件的所有(Ai,Bj)数对

2、条件

  1. Ai <= Bj
  2. Ai,Bj 距离小于等于 R,但如果Ai 找不到R范围内的Bj,则列出距它最近的1个Bj,当然此种情况仍然要满足1),但如果仍然找不到,就丢弃Ai

3、原型

车路协同场景,一条路上发生了有很多事件(A),要通过很多路测设备(B)广播给路上的车,需要给每个事件找到一个合适的路测设备去发送广播消息。

二、输入描述

按照人易读的格式输入一行数据,参见输入样例,其中“ABR={,}”中的每个字符都是关键分割符,输入中无空格,其他均为任意正整数,输入A和B已经排好序,A和B的大小不超过50,正整数范围不会超过65535。

三、输出描述

(Ai,Bj)数对序列,排列顺序满足序列中前面的Ax<=后面的Ay,前面的 Bx<=后面的By,因为输入A和B已经排好序,所以实际上输出结果不用特意排序,排序不是考察点。

四、Java算法源码

感谢@undefined提供更优质算法

在这里插入图片描述

package com.guor.od;

import java.util.*;

public class OdTest01 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arrA = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        int[] arrB = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::parseInt).toArray();
        int R = Integer.valueOf(sc.nextLine());
        for (int a : arrA) {
            int near = -1;
            boolean flag = false;
            for (int b : arrB) {
                if (b - a <= R && b >= a) {
                    System.out.print("(" + a + "," + b + ")");
                    flag = true;
                }
                if (b - a > R) {
                    near = b;
                    break;
                }
            }
            if (flag == false && near != -1) {
                System.out.print("(" + a + "," + near + ")");
            }
        }
    }
}

五、效果展示

1、输入

1 3 5
2 4 6
2

2、输出

(1,2)(3,4)(5,6)

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】

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

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

更多推荐

SpringBoot接口中如何直接返回图片数据

SpringBoot接口中如何直接返回图片数据目录接口直接返回图片数据起因类似这种根据个人经验优雅的实现图片返回接口直接返回图片数据起因最近在做涉及到分享推广的业务,需要由业务员分享二维码进入推广页面,由于是新项目,前期预算和用量都有限,没有搭建对象存储服务,所以决定使用后台服务动态生成二维码图片直接图片数据并返回。首

Kubernetes学习大纲

Kubernetes(通常缩写为K8s)是一个用于自动化部署、扩展和管理容器化(通常是Docker容器)应用程序的开源平台。以下是一些Kubernetes的核心概念和相关的命令。1.集群(Cluster)和节点(Nodes)集群是Kubernetes的基础单元,由一组节点(物理或虚拟机)组成。命令:kubectlget

外滩大会观察|重估蚂蚁!

点击关注文丨刘雨琦,编丨王一粟“不同品种的小狗排队通过‘实名认证’、刷脸识别不仅能识别人,还能识别狗”。“人脸、虹膜、掌纹都已经不算黑科技,脑纹识别才是真的不可替代。”2023年上海外滩大会上,6G、无人安全检测实验室、脑纹核身、蚁鉴2.0、城市链、AI大脑训练、支付芯......改变未来的十大黑科技在会上齐亮相,充满

python基础学习笔记2

python基础语法python的优点开源、易于维护、可移植易于使用、简单优雅广泛的标准库、功能强大可扩展、可嵌入所有的深度学习框架一般都有一个Python版的接口...python典型应用数据分析:对数据进行清洗、去重、规格化和针对性的分析科学计算常规软件开发人工智能网络爬虫WEB开发python基础语法基础操作#1

BK698CPA15B0 创建了通用电气数字工业发展指数

BK698CPA15B0创建了通用电气数字工业发展指数基于调查研究,通用电气创建了通用电气数字工业发展指数,以跟踪数字化转型的实际进展——从对IIoT的展望到准备好转型。该创始指数在100分制中的总得分为63,表明尽管工业互联网的前景非常强劲,得分为78.3(满分为100),但公司准备程度明显落后,得分为55.2(满分

C++提高编程

C++提高编程本阶段主要针对C++泛型编程和STL技术做详细讲解,探讨C++更深层的使用1模板1.1模板的概念模板就是建立通用的模具,大大提高复用性例如生活中的模板一寸照片模板:PPT模板:模板的特点:模板不可以直接使用,它只是一个框架模板的通用并不是万能的1.2函数模板C++另一种编程思想称为泛型编程,主要利用的技术

Docker Volume(存储卷)

文章目录DockerVolume(存储卷)1.什么是存储卷?2.为什么需要存储卷?3.存储卷的分类1)管理卷Volume方式一:Volume命令操作方式二:-v或者--mount指定方式三:Dockerfile匿名卷小结Docker卷生命周期Docker卷共享2)绑定卷bindmount-v参数创建卷3)临时卷tmpf

python+vue理发店管理系统

理发店管理系统主要实现角色有管理员和会员,管理员在后台管理用户表模块、token表模块、收藏表模块、商品分类模块、热卖商品模块、活动公告模块、留言反馈模块、理发师模块、会员卡模块、会员充值模块、会员模块、服务预约模块、服务项目模块、服务类别模块、热卖商品评论表模块、服务项目评论表模块、订单信息模块、配置文件模块。为项目

操作系统期末复习笔记

文章目录操作系统第1章计算机系统概述1指令执行的基本指令周期2中断分类与中断处理过程2.1中断的定义2.2中断分类2.3中断的意义2.4无中断2.5有中断2.6中断和指令周期2.7中断处理的过程3处理多中断的两种方法3.1顺序中断处理(禁止中断)3.2嵌套中断处理4存储器4.1存储器层次层次结构的特点4.2二级存储器(

语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)

文章目录一、语义分割介绍1.1语义分割和实例分割的区别1.2DeepLab系列对比二、代码下载2.1代码测试2.2视频学习三、数据集准备3.1Json转png3.2数据集划分四、模型训练五、模型测试六、模型评估一、语义分割介绍语义分割是计算机视觉中的一项技术,旨在将图像中的每个像素分配给特定的类别。它与目标检测不同,目

【map、set的封装】

目录前言一、map、set的框架搭建二、map、set的迭代器的封装2.1、map、set的迭代器的初步封装2.2、map、set的const迭代器的封装2.2.1、set的const迭代器的封装2.2.2、map的const迭代器的封装三、operator[]四、代码实现前言本文的代码是基于前一篇文章的红黑树的代码来

热文推荐