赞
踩
华为OD机试 2023B卷题库疯狂收录中,刷题点这里
本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。
刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。
数轴×有两个点的序列A={A1,A2,…Am}和B={B1,B2,.Bn},A和Bj均为正整数,A、B已经从小到大排好序,A、B均肯定不为空,给定一个距离R(正整数),列出同时满足如下条件的所有(Ai,Bj)数对
车路协同场景,一条路上发生了有很多事件(A),要通过很多路测设备(B)广播给路上的车,需要给每个事件找到一个合适的路测设备去发送广播消息。
按照人易读的格式输入一行数据,参见输入样例,其中“ABR={,}”中的每个字符都是关键分割符,输入中无空格,其他均为任意正整数,输入A和B已经排好序,A和B的大小不超过50,正整数范围不会超过65535。
(Ai,Bj)数对序列,排列顺序满足序列中前面的Ax<=后面的Ay,前面的 Bx<=后面的By,因为输入A和B已经排好序,所以实际上输出结果不用特意排序,排序不是考察点。
感谢@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 3 5
2 4 6
2
(1,2)(3,4)(5,6)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。