华为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在线答疑。

相关推荐
努力实干9 分钟前
面向对象设计原则——C++
开发语言·c++·数码相机
SL_staff2 小时前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
NetX行者2 小时前
四语言 Hello World 背后:编译模型与运行时对比
开发语言
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
Pin_Qing3 小时前
账单没超,请求先被拒了
大数据·开发语言·人工智能
2601_962885723 小时前
如何用 Python 计算 VaR 和 CVaR(在险价值)?
开发语言·python
杨杨杨大侠3 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
SL_staff3 小时前
私有化低代码运维三重雷区:JVS开源栈中的Kafka/ES/RabbitMQ治理实践
java·低代码·全栈
yuniko-n3 小时前
【算法】约瑟夫环问题
java·算法
郝亚军3 小时前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构