华为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>() {@Overridepublic 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.hqwc.cn/news/158612.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Apache Pulsar 在腾讯云上的最佳实践

导语 由 StreamNative 主办的 Pulsar Meetup Beijing 2023 在2023年10月14日完美落幕&#xff0c;本次活动大咖云集&#xff0c;来自腾讯、滴滴、华为、智联招聘、RisingWave 和 StreamNative 的行业专家们一起&#xff0c;深入探讨 Pulsar 在生产环境中的最佳应用实践&#x…

【优选算法系列】第一节.栈的简介(1047. 删除字符串中的所有相邻重复项和844. 比较含退格的字符串)

文章目录 前言一、删除字符串中的所有相邻重复项和 1.1 题目描述 1.2 题目解析 1.2.1 算法原理 1.2.2 代码编写二、比较含退格的字符串 2.1 题目描述 2.2 题目解析 2.2.1 算法原理 2.2.2 代码编写总结 前言 …

【数据库】关系数据库管理系统 (RDBMS) 中事务处理的四个特性ACID

给自己一个目标&#xff0c;然后坚持一段时间&#xff0c;总会有收获和感悟&#xff01; 数据库事务是指一组数据库操作&#xff08;例如插入、更新、删除等&#xff09;&#xff0c;被视为一个单独的逻辑操作单元&#xff0c;并且要么全部执行成功&#xff0c;要么全部不执行&…

微信小程序-授权登录(手机号码)

1、WXBizDataCrypt.js-下载地址 2、UNIAPP代码 <template> <view class"work-container"> <view class"login"> <view class"content"> <button class"button_wx&q…

图论08-图的建模-状态的表达与理解 - 倒水问题为例

文章目录 状态的表达例题1题解1 终止条件&#xff1a;有一个数位为42 状态的改变&#xff1a;a表示十位数&#xff0c;b表示个位数3 其他设置 例题2 力扣773 滑动谜题JavaC 状态的表达 例题1 从初始的(x&#xff0c;y)状态&#xff0c;到最后变成&#xff08;4&#xff0c;&am…

乌班图 Linux 系统 Ubuntu 23.10.1 发布更新镜像

Ubuntu 团队在其官网上发布了Ubuntu 23.10.1 版本,这是目前较新的 Ubuntu 23.10(Focal Fossa)操作系统系列的第一个发行版,旨在为社区提供最新的安装媒体。Ubuntu 22.04 LTS(Focal Fossa)操作系统系列于 2022 年 4 月 21 日发布。 Ubuntu 23.10 LTS(长期支持版本)可用…

Android Studio中配置Git

安装Git 在安装Android Studio之前&#xff0c;需要先安装Git。可以从Git官网下载并安装Git&#xff1a;https://git-scm.com/downloads 在Android Studio中配置Git 在Android Studio中&#xff0c;依次点击“File” -> “Settings”&#xff0c;在弹出的窗口中选择“Ver…

el-table表格设置——动态修改表头

(1) 首先是form表单写表单设置按钮&#xff1a; &#xff08;1.1&#xff09;使用el-popover&#xff0c;你需要修改的是this.colOptions&#xff0c;colSelect: <el-popover id"popover" popper-class"planProver" placement"bottom" width&…

推荐彩虹知识商城源码

彩虹知识商城7.0.3小森升级版新增供货商开心学习版&#xff0c;新增邮件提醒功能&#xff0c;支持给用户发订单、结算等邮件通知&#xff0c;支持给管理员发送提现、域名审核等邮件通知&#xff0c;支持设置手续费最低扣除金额&#xff0c;修复了其他一些已知问题。 演示地址&…

基于深度学习的目标检测算法 计算机竞赛

文章目录 1 简介2 目标检测概念3 目标分类、定位、检测示例4 传统目标检测5 两类目标检测算法5.1 相关研究5.1.1 选择性搜索5.1.2 OverFeat 5.2 基于区域提名的方法5.2.1 R-CNN5.2.2 SPP-net5.2.3 Fast R-CNN 5.3 端到端的方法YOLOSSD 6 人体检测结果7 最后 1 简介 &#x1f5…

HTML脚本、字符实体、URL

HTML脚本&#xff1a; JavaScript 使 HTML 页面具有更强的动态和交互性。 <script> 标签用于定义客户端脚本&#xff0c;比如 JavaScript。<script> 元素既可包含脚本语句&#xff0c;也可通过 src 属性指向外部脚本文件。 JavaScript 最常用于图片操作、表单验…

Python+Selenium自动化测试框架详解

什么是Selenium&#xff1f; Selenium是一个基于浏览器的自动化测试工具&#xff0c;它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分&#xff1a;Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE&#xff1a;Firefox的…