小编Ant*_*ton的帖子

快速最大连续正数

如何使用闭包计算最大连续正数?

var numbers = [1,3,4,-1,-2,5,2,-2,-3,-4,5]
//in this case it should be 3

print(numbers.reduce(0, { $1 > 0 ? $0 + 1 : $0 } ))//this counts total positive numbers
Run Code Online (Sandbox Code Playgroud)

closures swift

4
推荐指数
1
解决办法
470
查看次数

swift:平均连续正数

我们有一个数组,例如:

let numbers = [-1.0,1.0,3.0,4.0,-1.0,-2.0,2.0]
Run Code Online (Sandbox Code Playgroud)

我们知道如何获得最大连续正数:

let pos = numbers.map({ () -> (Double) -> Int in var c = 0; return { c = $0 > 0 ? c + 1 : 0; return c } }()) 
// [0, 1, 2, 3, 0, 0, 1]
let maxConsecutivePos = pos.max()! 
//3
Run Code Online (Sandbox Code Playgroud)

在我们的例子中,如何使用闭包和pos数组以相同的方式找到平均连续正数?对于这个例子,我们将sum(3 + 1)除以2 - > 2是预期输出.

arrays closures swift

2
推荐指数
1
解决办法
86
查看次数

标签 统计

closures ×2

swift ×2

arrays ×1