如何快速获取数组中的值的总和

问题描述

我有一个数组,其元素类似a ​​= [5,6,8,9,2,8]。因此,当我进行第一次迭代时,我将跳过第一个索引,然后将其余元素添加到数组中;如果进行第二次迭代,则将跳过第二个元素,然后添加其余元素。例如:对于第二次迭代,我跳过第二个元素,然后将其余元素添加为5 + 8 + 9 + 2 + 6 + 8 = 38像这样,我想添加元素并找到元素的最高和最低的元素。如何迅速做到这一点?

解决方法

尝试一下:

let array: [Int] = [1,2,3,4,5]
var min: Int!
var max: Int!

for (index,_) in array.enumerated() {
    var auxArray = array
    auxArray.remove(at: index)
    let sum = auxArray.reduce(0,+)

    if min == nil || max == nil {
        min = sum
        max = sum
    } else if sum < min {
        min = sum
    } else if sum > max {
        max = sum
    }
}

print("MIN: \(min!),MAX: \(max!)")
,

您可以一次迭代完成

let a = [5,6,8,9,8]

var sum = 0
var smallestNumber = a[0]
var largestNumber = a[0]

for number in a {
    sum += number
    if number < smallestNumber {
        smallestNumber = number
    }
    if number > largestNumber {
        largestNumber = number
    }
}

let smallestSum = sum - largestNumber
let largestSum = sum - smallestNumber