首页 > 解决方案 > 打印 Int Array Swift 中三个最高数字的函数

问题描述

我有一个数组:let arr = [2900, 18120, 21566, 1028, 190, 59351, 2782, 2552, 89947, 3644, 12964, 3820, 14923, 7175, 541, 3109, 17679, 136, 26514, 237, 0, 7417, 1469, 664, 8230, 1319, 0, 0]

我需要一个函数来将 3 个最高数字附加arrnewArr

最后的结果应该是: let newArr = [59351, 89947, 26514] 还有另一个数组,其中包含第一个数组中这 3 个数字的索引,例如。59351 将位于 arr[5],89947 将位于 arr[8],26514 将位于 arr[18] 因此,应创建另一个数组,如下所示:let indexArr = [5, 8, 18]

标签: arraysswift

解决方案


有点草率,但我会使用 Swift 中的 MAX 值函数来首先确定最高数字

例子:

let numbers = [ 1, 42, 5, 21 ]
var maxNumber = Int()

for number in numbers {
    maxNumber = max(maxNumber, number as Int)
}

print("the max number is \(maxNumber)")   // will be 42

获取此函数的最终结果并将其附加到您的 newArr,但使用“RemoveAt”函数从原始数组中删除此数字:

For only one element

if let index = animals.firstIndex(of: "chimps") {
    animals.remove(at: index)
}
print(animals) // ["cats", "dogs", "moose"]

然后,重复此过程以获得下一个最高值。


推荐阅读