在Xcode中使用swift我有一个浮点值数组' IMProdArray
。'
我想确定一个函数来检查数组中的值,以确定是否有任何值在彼此的0.200之内。如果他们返回' false',如果他们不是,请返回' true'。
作为一个类似的函数,我还想计算两个值之间的最大距离并返回中间点值:即
在数组中,我有值:1, 3, 4, 10, 11, 12
两个值之间的最大差距(如果它们是有序的)是4-10
。这个中间值是7.所以返回7.
非常感谢正确方向的推动。
答案 0 :(得分:0)
既然您要求解决方案,那么这就是解决方案(尽管我真的不应该为您编写代码)。
这适用于按升序排序的数组(如果数组尚未排序,则在使用此代码之前对数组进行排序):
var maxGap = -1
var maxGapIndex = -1
for i in [1..<IMProdArray.count] {
let gap = IMProdArray[i] - IMProdArray[i-1]
if gap <= 0.2 {
// handle the values being within 0.2 of each other
}
if gap > maxGap {
maxGap = gap
maxGapIndex = i-1 // store the index of the first number
}
}
然后,您可以从maxGapIndex
检索差距的索引。对于您的示例,maxGapIndex
将为2,这是数组中 4 的索引。