题目描述

题目名称:按身高和体重排队
时间限制:限制时间C/C++ 1秒,其他/Java 2s以内
内存限制:32768K

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

输入描述: 两个序列,每个序列由 n 个正整数组成(0 < n <= 100)。第一个序列中的数值代表身高,第二个序列中的数值代表体重。
输出描述: 排列结果,每个数值都是原始序列中的学生编号,编号从 1 开始

示例 1
输入:
4
100 100 120 130
40 30 60 50
输出:
2134

题目解答

import java.util.*;public class Main{public static void main(String[] args){long startTime=System.currentTimeMillis(); //获取开始时间//获取输入数据Scanner in = new Scanner(System.in);int n = in.nextInt();//定义map集合<初始序号,学生信息>Map<Integer,Person> map = new HashMap<Integer,Person>();//初始化学生初始序号、身高for (int i = 0; i < n; i++) {Person p = new Person(i+1);p.setHeight(in.nextInt());map.put(i,p);}//初始化学生体重for (int i = 0; i < n; i++) {map.get(i).setWeight(in.nextInt());}//遍历map集合,选择排序,性质不稳定,导致测试用例通过率91%//运行时间:1078ms/*for (int i = 0; i < n; i++) {for (int j = i; j < n; j++) {if(map.get(i).getHeight()>map.get(j).getHeight()){Person p = map.get(i);map.put(i,map.get(j));map.put(j,p);}else if(map.get(i).getHeight()==map.get(j).getHeight()){if(map.get(i).getWeight()>map.get(j).getWeight()){Person p = map.get(i);map.put(i,map.get(j));map.put(j,p);}}}}*///遍历map集合,选择性质稳定的冒泡排序,测试用例通过率应该能100%了//运行1153msfor (int i = 0; i < n-1; i++) {for (int j = 0; j < n-i-1; j++) {if(map.get(j).getHeight()>map.get(j+1).getHeight()){Person p = map.get(j);map.put(j,map.get(j+1));map.put(j+1,p);}else if(map.get(j).getHeight()==map.get(j+1).getHeight()){if(map.get(j).getWeight()>map.get(j+1).getWeight()){Person p = map.get(j);map.put(j,map.get(j+1));map.put(j+1,p);}}}}//输出结果for (int i = 0; i < n ; i++) {System.out.print(map.get(i).getId());if(i!=n-1){System.out.print(" ");}}//计算运行时间long endTime=System.currentTimeMillis(); //获取结束时间System.out.println("\n程序运行时间: "+(endTime-startTime)+"ms");}
}class Person{int id;int height;int weight;public Person(int id) {this.id = id;}public int getId() {return id;}public void setId(int id) {this.id = id;}public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public int getWeight() {return weight;}public void setWeight(int weight) {this.weight = weight;}
}

【华为OD机试-按身高和体重排队-Java】相关推荐

  1. 华为OD机试 - 按身高和体重排队(Java) | 机试题算法思路 【2023】

    使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高. 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12 ...

  2. 华为OD机试 - 按身高和体重排队(Java) | 机试题+算法思路+考点+代码解析 【2023】

    按身高和体重排队 题目 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对于身高体重都相同的人,维持原有的编号顺序关系.请输出 ...

  3. 华为OD机试 - 按身高和体重排队(Java JS Python)

    题目描述 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对于身高体重都相同的人,维持原有的编号顺序关系.请输出排列后的学生编 ...

  4. 【华为OD机试 】篮球比赛(C++ Java JavaScript Python)

    华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...

  5. 华为OD机试 - 消消乐游戏(Java JS Python)

    题目描述 游戏规则:输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除. 在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束. 输出最终得到的字符串长度. 输入 ...

  6. 华为OD机试 - 网上商城优惠活动(Java JS Python)

    题目描述 某网上商场举办优惠活动,发布了满减.打折.无门槛3种优惠券,分别为: 每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元,200~299可使用2张减20元,以此类推 ...

  7. 华为OD机试 - 获取最大软件版本号(Java JS Python)

    题目描述 Maven 版本号定义,<主版本>.<次版本>.<增量版本>-<里程碑版本>,举例3.1.4-beta 其中,主版本和次版本都是必须的,主版本 ...

  8. 华为OD机试 - 简单的解压缩算法(Java JS Python)

    题目描述 现需要实现一种算法,能将一组压缩字符串还原成原始字符串,还原规则如下: 1.字符后面加数字N,表示重复字符N次.例如:压缩内容为A3,表示原始字符串为AAA. 2.花括号中的字符串加数字N, ...

  9. 华为OD机试 - 最多颜色的车辆(Java JS Python)

    题目描述 在一个狭小的路口,每秒只能通过一辆车,假设车辆的颜色只有 3 种,找出 N 秒内经过的最多颜色的车辆数量. 三种颜色编号为0 ,1 ,2 输入描述 第一行输入的是通过的车辆颜色信息 [0,1 ...

最新文章

  1. 在Ubuntu 14.04 64bit上进行md5加密编程
  2. 将baidu地图中的baidu logo去掉
  3. Python3 AttributeError: module 'cv2' has no attribute 'SIFT'
  4. VS_自动添加头文件
  5. 3.11 TensorFlow-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  6. 监听以太网(三) Packet32数据结构说明
  7. CVE-2018-1000136:Electron nodeIntegration绕过漏洞
  8. Error: EACCES: permission denied, mkdir
  9. NOI大纲 CSP初赛篇·知识大纲 CSP-入门级-NOI大纲
  10. TFS 团队项目不能访问documents解决方案
  11. pycharm 运行odoo10出现ImportError: No module named win32service错误
  12. EVC获取当前工作路径
  13. java脚本计算器按钮无反应_2020年3月份最新计算机语言排行,20种语言争锋相对Java依旧飘逸...
  14. MySQLl数据量不一样,导致走不同的索引
  15. CSS基础(挺详细版)
  16. 基于安卓/android/微信小程序的自来水收费系统app-#计算机毕业设计
  17. JDK7和JDK8的区别
  18. android刷机工具mac版,Apeaksoft Android Toolkit for Mac(安卓数据恢复软件)
  19. ifconfig创建sit隧道
  20. 如何将ANSYS19 Structural 图形界面背景底色更改为白色

热门文章

  1. stm32f10x.h解析
  2. SRS Audio Sandbox没有声音怎么办
  3. Apache Log4j 2升级到2.16.0最新版本的解决方案
  4. 五秒去除视频水印,这么简单的方法一定要收藏!
  5. svg 使用path实现圆角效果
  6. Arduino(五)——呼吸灯
  7. C盘容量不足,怎么增加c盘空间?看这5个方法
  8. xp电脑自动锁定计算机,WinXP系统如何设置电脑自动关机?
  9. 后台界面设计之表格设计
  10. kubernetes Pod Lifecycle生命周期与livenessProbe、 readinessProbe探测方法