【华为OD机试-按身高和体重排队-Java】
题目描述
题目名称:按身高和体重排队
时间限制:限制时间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】相关推荐
- 华为OD机试 - 按身高和体重排队(Java) | 机试题算法思路 【2023】
使用说明 参加华为od机试,一定要注意不要完全背诵代码,需要理解之后模仿写出,通过率才会高. 华为 OD 清单查看地址:https://blog.csdn.net/hihell/category_12 ...
- 华为OD机试 - 按身高和体重排队(Java) | 机试题+算法思路+考点+代码解析 【2023】
按身高和体重排队 题目 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对于身高体重都相同的人,维持原有的编号顺序关系.请输出 ...
- 华为OD机试 - 按身高和体重排队(Java JS Python)
题目描述 某学校举行运动会,学生们按编号(1.2.3-n)进行标识,现需要按照身高由低到高排列,对身高相同的人,按体重由轻到重排列:对于身高体重都相同的人,维持原有的编号顺序关系.请输出排列后的学生编 ...
- 【华为OD机试 】篮球比赛(C++ Java JavaScript Python)
华为od机试共有3道题,分值为100+100+200,总分为400分.考试时间 2.5h..每道题目都需要通过测试用例来得分,全通过则为满分.华为od机试是在牛客网上进行的,采用ACM模式.华为od机 ...
- 华为OD机试 - 消消乐游戏(Java JS Python)
题目描述 游戏规则:输入一个只包含英文字母的字符串,字符串中的两个字母如果相邻且相同,就可以消除. 在字符串上反复执行消除的动作,直到无法继续消除为止,此时游戏结束. 输出最终得到的字符串长度. 输入 ...
- 华为OD机试 - 网上商城优惠活动(Java JS Python)
题目描述 某网上商场举办优惠活动,发布了满减.打折.无门槛3种优惠券,分别为: 每满100元优惠10元,无使用数限制,如100~199元可以使用1张减10元,200~299可使用2张减20元,以此类推 ...
- 华为OD机试 - 获取最大软件版本号(Java JS Python)
题目描述 Maven 版本号定义,<主版本>.<次版本>.<增量版本>-<里程碑版本>,举例3.1.4-beta 其中,主版本和次版本都是必须的,主版本 ...
- 华为OD机试 - 简单的解压缩算法(Java JS Python)
题目描述 现需要实现一种算法,能将一组压缩字符串还原成原始字符串,还原规则如下: 1.字符后面加数字N,表示重复字符N次.例如:压缩内容为A3,表示原始字符串为AAA. 2.花括号中的字符串加数字N, ...
- 华为OD机试 - 最多颜色的车辆(Java JS Python)
题目描述 在一个狭小的路口,每秒只能通过一辆车,假设车辆的颜色只有 3 种,找出 N 秒内经过的最多颜色的车辆数量. 三种颜色编号为0 ,1 ,2 输入描述 第一行输入的是通过的车辆颜色信息 [0,1 ...
最新文章
- 在Ubuntu 14.04 64bit上进行md5加密编程
- 将baidu地图中的baidu logo去掉
- Python3 AttributeError: module 'cv2' has no attribute 'SIFT'
- VS_自动添加头文件
- 3.11 TensorFlow-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- 监听以太网(三) Packet32数据结构说明
- CVE-2018-1000136:Electron nodeIntegration绕过漏洞
- Error: EACCES: permission denied, mkdir
- NOI大纲 CSP初赛篇·知识大纲 CSP-入门级-NOI大纲
- TFS 团队项目不能访问documents解决方案
- pycharm 运行odoo10出现ImportError: No module named win32service错误
- EVC获取当前工作路径
- java脚本计算器按钮无反应_2020年3月份最新计算机语言排行,20种语言争锋相对Java依旧飘逸...
- MySQLl数据量不一样,导致走不同的索引
- CSS基础(挺详细版)
- 基于安卓/android/微信小程序的自来水收费系统app-#计算机毕业设计
- JDK7和JDK8的区别
- android刷机工具mac版,Apeaksoft Android Toolkit for Mac(安卓数据恢复软件)
- ifconfig创建sit隧道
- 如何将ANSYS19 Structural 图形界面背景底色更改为白色