使用kotlin解答这个题目:2418. 按身高排序 提示 简单 83 相关企业 给你一个字符串数组 names ,和一个由 互不相同 的正整数组成的数组 heights 。两个数组的长度均为 n 。 对于每个下标 i,names[i] 和 heights[i] 表示第 i 个人的名字和身高。 请按身高 降序 顺序返回对应的名字数组 names 。 示例 1: 输入:names = ["Mary","John","Emma"], heights = [180,165,170] 输出:["Mary","Emma","John"] 解释:Mary 最高,接着是 Emma 和 John 。 示例 2: 输入: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 中的所有值互不相同
时间: 2024-02-03 16:03:24 浏览: 112
一个使用Kotlin打印彩色字符串的库。-Android开发
```kotlin
fun sortByHeight(names: Array<String>, heights: IntArray): Array<String> {
val map = mutableMapOf<Int, String>()
for (i in names.indices) {
map[heights[i]] = names[i]
}
return map.toSortedMap(reverseOrder())
.values.toTypedArray()
}
```
首先将名字和身高对应起来,放入一个 map 中。然后使用 `toSortedMap()` 将 map 按照键值排序,默认是升序,这里使用 `reverseOrder()` 使其降序排列。最后只需要返回排好序的名字数组即可。
阅读全文