2418. 按身高排序

2418. 按身高排序

题目

给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。

对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。

请按身高 降序 顺序返回对应的名字数组 names 。

代码

简单题
稍微需要设计的是怎么将 name 和 height 绑定在一起。
这里使用的是 Class,也可以使用 map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.util.*;
class Solution {
public String[] sortPeople(String[] names, int[] heights) {
int n = heights.length;
Pair[] pairs = new Pair[n];
for(int i=0;i<n;i++) {
pairs[i] = new Pair(names[i], heights[i]);
}
Arrays.sort(pairs, (Pair a, Pair b) -> {
return Integer.compare(b.height, a.height);
});
String[] res = new String[n];
for(int i=0;i<n;i++) {
res[i] = pairs[i].name;
}
return res;
}
}

class Pair {
String name;
int height;
Pair(String name, int height) {
this.name = name;
this.height = height;
}
}

Powered By Valine
v1.5.2