2418. 按身高排序
力扣链接
给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。
对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。
请按身高 降序 顺序返回对应的名字数组 names 。
示例 1:
1 2 3
| 输入:names = ["Mary","John","Emma"], heights = [180,165,170] 输出:["Mary","Emma","John"] 解释:Mary 最高,接着是 Emma 和 John 。
|
示例 2:
1 2 3
| 输入:names = ["Alice","Bob","Bob"], heights = [155,185,150] 输出:["Bob","Alice","Bob"] 解释:第一个 Bob 最高,然后是 Alice 和第二个 Bob 。
|
提示:
- n == names.length == heights.length
- 1 <= n <= 103
- 1 <= names[i].length <= 20
- 1 <= heights[i] <= 105
- names[i] 由大小写英文字母组成
- heights 中的所有值互不相同
思路
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
var sortPeople = function(names, heights) { let res = [] let map = new Map() for(let i =0; i< names.length;i++){ map.set(heights[i],names[i]) } let arr = Array.from(map) arr.sort((a,b)=>b[0]-a[0]) for(let [key,value] of arr.entries()){ res.push(value[1]) } return res };
|