import javax.swing.*;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.TreeSet;
public class Main9 {
public static void main(String[] args) throws IOException {
BufferedReader buff = new BufferedReader(new InputStreamReader(System.in));
String first;
while (null!=(first=buff.readLine())){
int n = Integer.parseInt(first);
String[] he = buff.readLine().split(" ");
String[] kg = buff.readLine().split(" ");
int[] h = new int[n];
int[] k = new int[n];
for(int i=0;i<n;i++){
h[i]=Integer.parseInt(he[i]);
k[i]=Integer.parseInt(kg[i]);
}
st[] sts = new st[n];
for(int i=0;i<n;i++){
sts[i]=new st(i+1,h[i],k[i] );
}
Arrays.sort(sts, new Comparator<st>() {
@Override
public int compare(st o1, st o2) {
if(o1.h==o2.h) return o1.k-o2.k;
else return o1.h-o2.h;
}
});
for (st s:
sts) {
System.out.print(s.n+" ");
}
}
}
}
class st{
int n;
int h;
int k;
st(int n, int h, int k ){
this.n=n;
this.h=h;
this.k=k;
}
}
java华为od机试书生编号1-n,先按照身高优先排序,身高相等时按照体重排序,输出排序后的编号 需要用到双重比较
最新推荐文章于 2025-02-07 22:13:18 发布
该博客主要展示了如何使用Java编程实现一个基于输入数组进行排序的程序。程序读取两个整数数组,分别存储身高和体重数据,然后创建自定义类`st`存储每个个体的编号、身高和体重。通过`Comparator`接口对数组进行排序,首先按身高排序,身高相同时按体重排序。最后,程序将排序后的个体编号输出。这个例子涉及到数据处理、排序算法和自定义比较器的知识。

874

被折叠的 条评论
为什么被折叠?



