建网站系统,WordPress登录提醒,自己怎么做一个网页,重庆娱乐公司目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中#xff0c;刷题点这里 专栏导读
本专栏收录于《华为OD机试#xff08;JAVA#xff09;真题#xff08;A卷B卷#… 目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中刷题点这里 专栏导读
本专栏收录于《华为OD机试JAVA真题A卷B卷》。
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。
一、题目描述
小明今年升学到了小学1年级来到新班级后发现其他小朋友身高参差不文然后就想基于各小朋友和自己的身高差对他们进行排序请帮他实现排序。
二、输入描述
第一行为正整数h和n0h200为小明的身高0n50为新班级其他小朋友个数
第二行为n个正整数h1~hn分别是其他小朋友的身高取值范围0hi200且n个正整数各不相同。
三、输出描述
输出排序结果各正整数以空格分割和小明身高差绝对值最小的小朋友排在前面
和小明身高差绝对值最大的小朋友排在后面。
如果两个小朋友和小明身高差一样则个子较小的小朋友排在前面。
四、解题思路
第一行为正整数h和n小明的身高、新班级其他小朋友个数定义集合list存储新班级其他小朋友的身高以空格分割和小明身高差绝对值最小的小朋友排在前面和小明身高差绝对值最大的小朋友排在后面如果两个小朋友和小明身高差一样则个子较小的小朋友排在前面空格分隔并输出。
五、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]);ListInteger list new ArrayList();String[] arr sc.nextLine().split( );for (String str : arr){list.add(Integer.valueOf(str));}/*** 以空格分割和小明身高差绝对值最小的小朋友排在前面* 和小明身高差绝对值最大的小朋友排在后面。*/Collections.sort(list, new ComparatorInteger() {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机试 - 荒岛求生 - 栈StackJava 2023 B卷 100分
本文收录于华为OD机试JAVA真题A卷B卷
刷的越多抽中的概率越大每一题都有详细的答题思路、详细的代码注释、样例测试发现新题目随时更新全天CSDN在线答疑。