装修公司网站建设方案,多语言网站思路,深圳营销网站建设公司哪家好,百度外推发帖软件华为OD统一考试A卷B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目#xff0c;A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载#xff0c;请点击以下链接进入#xff…华为OD统一考试A卷B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载请点击以下链接进入 我用夸克网盘分享了「华为OD题库Java.zip」点击链接即可保存。打开「夸克APP」 链接https://pan.quark.cn/s/f59329c0173b 提取码3p8Y 题目类型数组 题目描述 某学校举行运动会学生们按编号(1、2、3…n)进行标识现需要按照身高由低到高排列对身高相同的人按体重由轻到重排列对于身高体重都相同的人维持原有的编号顺序关系。请输出排列后的学生编号。
输入描述 两个序列每个序列由n个正整数组成0 n 100。第一个序列中的数值代表身高第二个序列中的数值代表体重。。
输出描述 排列结果每个数值都是原始序列中的学生编号编号从1开始身高从低到高身高相同体重从轻到重体重相同维持原来顺序。
示例 1 输入 4 100 100 120 130 40 30 60 50
输出 2 1 3 4
示例 2 输入 3 90 110 90 45 60 45
输出 1 3 2
参考代码
import java.util.*;public class HeightWeightSort {public static void main(String[] args) {Scanner in new Scanner(System.in);int n in.nextInt();in.nextLine();String[] height in.nextLine().split( );String[] weight in.nextLine().split( );int[] h new int[n];int[] w new int[n];MapInteger, int[] map new HashMap();for (int i 0; i n; i) {h[i] Integer.parseInt(height[i]);w[i] Integer.parseInt(weight[i]);map.put(i, new int[]{0, 0});int[] info map.get(i);info[0] h[i];info[1] w[i];}// Map按value排序先将map转为list,再排序list(按value值进行排序)ListMap.EntryInteger, int[] list new ArrayListMap.EntryInteger, int[](map.entrySet());// 通过比较器来实现排序Collections.sort(list, new ComparatorMap.EntryInteger, int[]() {Overridepublic int compare(Map.EntryInteger, int[] o1, Map.EntryInteger, int[] o2) {// 降序排序int re o1.getValue()[0] - o2.getValue()[0];if (re ! 0) {return re;}re o1.getValue()[1] - o2.getValue()[1];if (re ! 0) {return re;}return 0;}});StringBuilder sb new StringBuilder();for (Map.EntryInteger, int[] mapping : list) {sb.append(String.valueOf(mapping.getKey() 1) );}System.out.print(sb.toString().trim());}
}