按身高排序【LC2418】
给你一个字符串数组
names
,和一个由 互不相同 的正整数组成的数组heights
。两个数组的长度均为n
。对于每个下标
i
,names[i]
和heights[i]
表示第i
个人的名字和身高。请按身高 降序 顺序返回对应的名字数组
names
。
在外面有事 希望一切顺利~
- 思路
先使用二维数组记录每个height的下标和值,然后对值进行降序排序,然后根据下标依次取出name,返回即可 - 实现
class Solution { public String[] sortPeople(String[] names, int[] heights) { int n = heights.length; int[][] index = new int[n][2]; for (int i = 0; i < n; i++){ index[i][0] = i; index[i][1] = heights[i]; } Arrays.sort(index, (o1, o2) -> o2[1] - o1[1]); String[] res = new String[n]; for (int i = 0; i < n; i++){ res[i] = names[index[i][0]]; } return res; } }