Swift比较单个数组中的值

时间:2014-10-06 13:27:06

标签: arrays swift ios8

在Xcode中使用swift我有一个浮点值数组' IMProdArray。'
我想确定一个函数来检查数组中的值,以确定是否有任何值在彼此的0.200之内。如果他们返回' false',如果他们不是,请返回' true'。

作为一个类似的函数,我还想计算两个值之间的最大距离并返回中间点值:即

在数组中,我有值:1, 3, 4, 10, 11, 12

两个值之间的最大差距(如果它们是有序的)是4-10。这个中间值是7.所以返回7.

非常感谢正确方向的推动。

1 个答案:

答案 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 的索引。