问题描述
我有一个数组,其元素类似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