gpt4 book ai didi

ios - 如何快速从 float 数组中获取前 2 个最大值?

转载 作者:搜寻专家 更新时间:2023-11-01 05:50:19 25 4
gpt4 key购买 nike

我需要从一个 float 数组中获取 2 个最大值,即一个最高值和一个第二高值。是否有任何简单的方法来获取它们的索引,或者我是否需要为此更改数组的结构?

最佳答案

只需对数组进行排序,取需要的值

var array1 = [2.1, 2.2, 2.5, 3.0, 4.2, 2]

var array2 = array1.sort(){ $0 > $1}

//One way
let firstMax = array2[0]
let secondMax = array2[1]

//Second way
let firstMax = array2.removeFirst()
let secondMax = array2.removeFirst()

编辑

如果你想要索引,就把它们弄成这样

let maxPos = array1.indexOf(firstMax)
let secMaxPos = array1.indexOf(secondMax)

如果您对这些事情感到困惑,请遵循以下正常的基础知识。

var max = -1.0, maxPos = -1, secMax = -1.0, secMaxPos = -1
for (index, value) in array1.enumerate() {
if value > max {
max = value
maxPos = index
} else if value > secMax {
secMax = value
secMaxPos = index
}
}
print("max:\(max)->pos:\(maxPos)::secMax:\(secMax)->secMaxPos:\(secMaxPos)")

关于ios - 如何快速从 float 数组中获取前 2 个最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38698104/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com