【发布时间】:2018-10-04 12:35:29
【问题描述】:
考虑以下二维数组:
let array = [
[11, 2, 4],
[4, 5, 6],
[10, 8, -12]
]
我想得到的是对角线的总和:
- 作为
firstDiagnal: 11 + 5 + (-12) = 4 - 作为
secondDiagnal:4 + 5 + 10 = 19
我可以使用标准的for-in 循环来实现它:
var firstDiagnal = 0
var secondDiagnal = 0
for i in 0..<array.count {
firstDiagnal += array[i][i]
secondDiagnal += array[i][array[i].count - 1 - i]
}
print(firstDiagnal)
print(secondDiagnal)
但是,如果我们尝试使用 higher-order 函数会怎样?比如map和reduce?
【问题讨论】:
标签: arrays swift algorithm higher-order-functions