华为OD机试 - 寻找身高相近的小朋友 - 双指针(Java 2023 B卷 100分)

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

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

专栏导读

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

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

一、题目描述

小明今年升学到了小学1年级来到新班级后,发现其他小朋友身高参差不文,然后就想基于各小朋友和自己的身高差,对他们进行排序,请帮他实现排序。

二、输入描述

第一行为正整数h和n,0<h<200为小明的身高,0<n<50为新班级其他小朋友个数;

第二行为n个正整数,h1~hn分别是其他小朋友的身高,取值范围0<hi<200,且n个正整数;各不相同。

三、输出描述

输出排序结果,各正整数以空格分割和小明身高差绝对值最小的小朋友排在前面,

和小明身高差绝对值最大的小朋友排在后面。

如果两个小朋友和小明身高差一样,则个子较小的小朋友排在前面。

四、解题思路

  1. 第一行为正整数h和n,小明的身高、新班级其他小朋友个数;
  2. 定义集合list,存储新班级其他小朋友的身高;
  3. 以空格分割和小明身高差绝对值最小的小朋友排在前面,和小明身高差绝对值最大的小朋友排在后面;
  4. 如果两个小朋友和小明身高差一样,则个子较小的小朋友排在前面;
  5. 空格分隔并输出。

五、Java算法源码

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    // 小明的身高
    String[] line1 = sc.nextLine().split(" ");
    int h = Integer.valueOf(line1[0]);
    // 新班级其他小朋友个数
    int n = Integer.valueOf(line1[1]);

    List<Integer> list = new ArrayList<>();
    String[] arr = sc.nextLine().split(" ");
    for (String str : arr){
        list.add(Integer.valueOf(str));
    }

    /**
     * 以空格分割和小明身高差绝对值最小的小朋友排在前面,
     * 和小明身高差绝对值最大的小朋友排在后面。
     */
    Collections.sort(list, new Comparator<Integer>() {
        @Override
        public int compare(Integer o1, Integer o2) {
            int abs1 = Math.abs(o1 - h);
            int aba2 = Math.abs(o2 - h);

            // 如果两个小朋友和小明身高差一样,则个子较小的小朋友排在前面
            if (abs1 == aba2) {
                return o1 - o2;
            } else {
                return abs1 - aba2;
            }
        }
    });

    // 空格分隔并输出
    StringJoiner stringJoiner = new StringJoiner(" ");
    for (Integer height : list) {
        stringJoiner.add(String.valueOf(height));
    }
    System.out.println(stringJoiner.toString());
}

六、效果展示

1、输入

100 10
95 96 97 98 99 101 102 103 104 105

2、输出

99 101 98 102 97 103 96 104 95 105

3、说明

在这里插入图片描述


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

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/114441.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux————内置命令大全

&#xff08;一&#xff09;内置命令 Shell 内置命令&#xff0c;就是由 Bash Shell 自身提供的命令&#xff0c;而不是文件系统中的可执行脚本文件。内置命令的执行速度通常优于外部命令&#xff0c;因为执行外部命令不仅会导致磁盘I/O操作&#xff0c;而且还需要为其fork一个…

如何提高Python图像表格数据提取的准确率?

Python图像表格数据提取 1、数据来源2、目标图像3、图像文本提取4、图像灰度化与二值化可以提高识别准确率吗1、数据来源 国家统计局:http://www.stats.gov.cn/sj/ 数据来源:国家统计局中国统计年鉴2022年人口数及构成 2、目标图像 数据(部分)如下: 数据形式:http://www…

windows server 2016调优

1. 增加TCP连接的最大数量&#xff1a; 在您当前的注册表路径&#xff08;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters&#xff09;中的右侧窗格&#xff0c;右击空白处&#xff0c;选择“新建” -> “DWORD (32位) 值”。为新的值命名为TcpNu…

万宾科技管网水位监测预警,管网水位的特点有哪些?

以往如果要了解城市地下排水管网的水位变化&#xff0c;需要依靠人工巡检或者排查的方式&#xff0c;这不仅加大了人员的工作量&#xff0c;而且也为市政府带来了更多的工作难题。比如人员监管监测不到位或无法远程监控等情况&#xff0c;都会降低市政府对排水管网的管理能力&a…

【C++代码】编辑距离,最长递增子序列,最长连续递增序列,最长重复子数组,最长公共子序列,不相交的线,动态规划--代码随想录

题目&#xff1a;最长递增子序列 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,…

uniapp在APP端使用swiper进行页面不卡顿滑动

uniapp在APP端使用swiper进行页面会卡顿&#xff0c;主要是渲染的数据有点多&#xff0c;这里只渲染三个数据就不好那么卡顿了&#xff0c;每次滑动后更新数据 <view><swiper change"changePoint" circular :disable-touch"disableTouch"><…

JAVA代码审计-cms综合篇

前言 JEECGv3.8。下载地址&#xff1a;GitHub - jeecgboot/jeecg at v3.8 java代码审计第一步&#xff1a;查看web.xml 一个重要的servlet&#xff1a;DispatcherServlet&#xff0c; <servlet><description>spring mvc servlet</description><servle…

MySQL缩短查询时间小技巧

背景 今天我要统计数据表的最新更新时间&#xff0c;有些表数据量特别大&#xff0c;所以统计比较费时间&#xff0c;但是如果使用一下小技巧&#xff0c;就会极大加快查询时间&#xff0c;适合小白的调优手段。 查询更新时间 select max(update_time) from test大概表的行数…

2024上海国际人工智能展(CSITF)“创新驱动发展·科技引领未来”

人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;作为当今世界科技发展的关键领域之一&#xff0c;正不断推动着各行各业的创新和变革。作为世界上最大的消费市场之一&#xff0c;中国正在积极努力将AI技术与产业融合并加速推广应用。在这个背景下&…

一次cs上线服务器的练习

环境&#xff1a;利用vm搭建的环境 仅主机为65段 测试是否能与win10ping通 配置转发 配置好iis Kali访问测试 现在就用burp抓取winser的包 开启代理 使用默认的8080抓取成功 上线

html获取网络数据,列表展示 第二种

html获取网络数据&#xff0c;列表展示 第二种 js遍历json数组中的json对象 image.png || - 判断数据是否为空&#xff0c;为空就显示 - <!DOCTYPE html> <html><head><meta charset"utf-8"><title>网页列表</title><script …

管理类联考——数学——汇总篇——知识点突破——代数——函数、方程——记忆

文章目录 考点记忆/考点汇总——按大纲 整体局部 本篇思路&#xff1a;根据各方的资料&#xff0c;比如名师的资料&#xff0c;按大纲或者其他方式&#xff0c;收集/汇总考点&#xff0c;即需记忆点&#xff0c;在通过整体的记忆法&#xff0c;比如整体信息很多&#xff0c;通常…

飞致云及其旗下1Panel项目进入2023年第三季度最具成长性开源初创榜单

2023年10月26日&#xff0c;知名风险投资机构Runa Capital发布2023年第三季度ROSS指数&#xff08;Runa Open Source Startup Index&#xff09;。ROSS指数按季度汇总并公布在代码托管平台GitHub上年化增长率&#xff08;AGR&#xff09;排名前二十位的开源初创公司和开源项目。…

ThingsBoard的通知

1、概述 ThingsBoard 通知中心允许您向最终用户发送通知。既可以通过手动触发通知,也可以通过事件触发规则链来发送通知。 在此页面上,可以看到发送通知的按钮和五个选项卡:“收件箱”、“已发送”、“收件人”、“模板”和“规则”。 2、通知的方式 thingsboard的通知中…

基于OpenHarmony的启航开发板的基础操作

文章目录 前言一、前提准备二、基础操作1.hb set命令的使用2.hb build -f 命令的使用3.Hello World 案例 前言 在物联网&#xff08;IoT&#xff09;领域&#xff0c;开发板扮演着至关重要的角色&#xff0c;为开发人员提供了实验和原型设计的平台。而OpenHarmony作为一个开源…

C语言调试技巧(debug)及程序运行时出现的问题

目录 一、什么是调试 1.介绍调试 2.Debug与Release 3.Debug与Release的对比 二、怎么调试 1.介绍几个调试快捷键 2.调试的时候查看程序当前信息 三、常见编程错误 1.编译型错误&#xff08;最简单&#xff09; 2.链接型错误 3.运行时错误&#xff08;最难&#xff0…

数据库-引擎

存储引擎&#xff1a; mysql当中数据用各中不同的技术存储在文件中&#xff0c;每一种技术都使用的是不同的存储机制&#xff0c;索引技巧 索引水平&#xff0c;以及最终提供的不同功能和能力&#xff0c;这些就是我们说的引擎。 功能&#xff1a; mysql将数据存储在文件系统…

使用pytorch处理自己的数据集

目录 1 返回本地文件中的数据集 2 根据当前已有的数据集创建每一个样本数据对应的标签 3 tensorboard的使用 4 transforms处理数据 tranfroms.Totensor的使用 transforms.Normalize的使用 transforms.Resize的使用 transforms.Compose使用 5 dataset_transforms使用 1 返回本地…

五年制专转本的备考是多方面的较量

转本复习已进入下半场&#xff0c;同学们不能再慢悠悠地看书了&#xff01;接下来就是很多人备考的发力期&#xff0c;能否弯道超车就要看个人的把握。 1、自控与时间管理 转本考的知识就是那么多&#xff0c;只需要你高效地投入一定的时间和精力就能够掌握。问题是一些同学做…
最新文章