华为OD机试 - 事件推送(Java 2023 B卷 100分)

目录

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

专栏导读

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

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

一、题目描述

同一个数轴X上有两个点的集合A={A1,A2,...,Am}和B={B1,B2,...,Bn},Ai和Bj均为正整数,A、B已经按照从小到大排好序,

A、B均不为空,给定一个距离R(正整数),列出同时满足如下条件的所有(Ai,Bj)数对:

  1. Ai<= Bj
  2. Ai,Bj之间的距离小于等于R
  3. 在满足1,2的情况下,每个Ai只需输出距离最近的Bj
  4. 输出结果按Ai从小到大的顺序排序

二、输入描述

第一行三个正整数m,n,R

第二行m个正整数,表示集合A

第三行n个正整数,表示集合B

输入限制:

1<=R<=100000,1<=n,m<=100000,1<=Ai,Bj<=1000000000

这个题目和ABR很像,但是条件差不就那么一点点。

三、输出描述

每组数对输出一行Ai和Bj,以空格隔开。

四、Java算法源码

java 复制代码
package com.guor.od;

import java.util.*;

public class OdTest {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int m = sc.nextInt();
        int n = sc.nextInt();
        int R = sc.nextInt();

        int[] A = new int[m];
        int[] B = new int[n];

        for (int i = 0; i < m; i++) {
            A[i] = sc.nextInt();
        }
        for (int i = 0; i < n; i++) {
            B[i] = sc.nextInt();
        }

        List<int[]> list = new ArrayList<>();

        for (int i = 0; i < A.length; i++) {
            int[] arr = new int[2];
            int index = 0;
            int min = Integer.MAX_VALUE;
            boolean flag = false;
            while (index < B.length) {
                if (A[i] <= B[index] && B[index] - A[i] <= R && B[index] - A[i] < min) {
                    min = B[index] - A[i];
                    arr[0] = A[i];
                    arr[1] = B[index];
                    flag = true;
                }
                index++;
            }
            if (flag) {
                list.add(arr);
            }
        }

        System.out.println();

        list.forEach(e -> {
            System.out.println(e[0] + " " + e[1]);
        });
    }
}

五、效果展示

1、输入

4 2 6

1 3 6 4

2 4 1

2、输出

1 2

3 4

4 4

🏆下一篇:华为OD机试 - 荒岛求生 - 栈Stack(Java 2023 B卷 100分)

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

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

相关推荐
Chrikk15 分钟前
Go-性能调优实战案例
开发语言·后端·golang
幼儿园老大*18 分钟前
Go的环境搭建以及GoLand安装教程
开发语言·经验分享·后端·golang·go
canyuemanyue18 分钟前
go语言连续监控事件并回调处理
开发语言·后端·golang
杜杜的man20 分钟前
【go从零单排】go语言中的指针
开发语言·后端·golang
测开小菜鸟22 分钟前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity1 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天1 小时前
java的threadlocal为何内存泄漏
java
caridle2 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
萧鼎2 小时前
Python并发编程库:Asyncio的异步编程实战
开发语言·数据库·python·异步
学地理的小胖砸2 小时前
【一些关于Python的信息和帮助】
开发语言·python