华为OD机试真题 Java 实现【按身高和体重排队】【2022Q4 100分】,附详细解题思路

在这里插入图片描述

一、题目描述

某学校举行运动会,学生们按编号(1、2、3…n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列;对于身高体重都相同的人,维持原有的编号顺序关系。

请输出排列后的学生编号。

二、输入描述

两个序列,每个序列由n个正整数组成(0 < n <= 100)。第一个序列中的数值代表身高,第二个序列中的数值代表体重。

三、输出描述

排列结果,每个数值都是原始序列中的学生编号,编号从1开始。

四、解题思路

题目要求对学生进行排序,先按照身高从低到高排序,对于身高相同的学生再按照体重从轻到重排序,保持身高体重相同的学生的编号顺序不变。

  1. 读取输入的两个序列,分别表示身高和体重;
  2. 创建一个节点类 Node,包含学生的编号、身高和体重;
  3. 创建节点数组 nodes,长度为学生人数 n;
  4. 遍历学生,对于每个学生:
    • 创建一个节点对象,将学生的编号、身高和体重作为参数传入节点的构造函数;
    • 将节点对象存入节点数组 nodes;
  5. 使用 Arrays.sort() 方法对节点数组进行排序,排序规则为身高从低到

你可能感兴趣的:(java,华为,开发语言,学习,后端)