华为机试真题 Java 实现事件推送

Posted MISAYAONE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试真题 Java 实现事件推送相关的知识,希望对你有一定的参考价值。

目录

题目

思路

考点

Code


题目

【事件推送】

同一个数轴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

输出描述

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

示例1   输入输出示例仅供调试,后台判题数据一般不包含示例

输入

4 5 5
1 5 5 10
1 3 8 8 20

输出

1 1
5 8
5 8

思路

1:虽然有4个条件需要满足,但是每个条件其实都非常好满足,在逻辑实现的情况下,直接循环遍历两个数组,在循环中判定各项条件即可

2:第四个条件几乎是迷惑项,因为本身两个数组排好序了,循环后直接是从小到大的。

考点

1:条件判定

2:注重理解题意

Code

import java.util.Scanner;
import java.util.*;

public class Main  
    public static void main(String[] args)  
        // 处理输入
        Scanner in = new Scanner(System.in);
        String param_str = in.nextLine();
        String m_str = in.nextLine();
        String n_str = in.nextLine();

        String[] param_list = param_str.split(" ");
        int R = Integer.valueOf(param_list[2]);

        String[] m_List = m_str.split(" ");
        String[] n_List = n_str.split(" ");

        int index = 0;
        //双层循环判定
        for (int i = 0; i < m_List.length; i++) 
            if (m_List[i].trim().length() <= 0) 
                continue;
            
            int m_temp = Integer.valueOf(m_List[i]);
            for (int j = index; j < n_List.length; j++)     
                index = j;
                if (n_List[j].trim().length() <= 0) 
                    continue;
                
                int n_temp = Integer.valueOf(n_List[j]);
                if (m_temp <= n_temp) 
                    if (n_temp - m_temp <= R) 
                        System.out.println(m_temp + " " + n_temp);
                    
                    break;
                

            
        

    


以上是关于华为机试真题 Java 实现事件推送的主要内容,如果未能解决你的问题,请参考以下文章

独家华为OD机试提供C语言题解 - 事件推送

华为OD机试 - 事件推送(Python),真机试题

华为OD机试真题Python实现最近的点真题+解题思路+代码(2022&2023)

华为OD机试真题 Java 实现单词接龙

华为OD机试真题JAVA实现任务总执行时长真题+解题思路+代码(2022&2023)

华为OD机试真题Java实现找字符真题+解题思路+代码(2022&2023)