【发布时间】:2018-11-07 15:49:19
【问题描述】:
我想找到总和等于给定总和的所有唯一对。我实现了一个解决方案,但它只返回它找到的第一对。
func checkPairs(in numbers: [Int], forSum target: Int) -> String {
for (i, x) in numbers.enumerated() {
for y in numbers[i+1 ..< numbers.count] {
if x + y == target {
return ("There is a pair that sums \(target): \(x)+\(y)=\(target)")
}
}
}
return "no pair"
}
print (checkPairs(in: [1, 2, 4, 4, 7, 5, 3], forSum: 8))
输出:
There is a pair that sums 8: 1+7=8
【问题讨论】:
-
您对单个值执行
return。而是使用一个数组来保存所有“工作”的对,在需要时附加一个新的对并返回它? -
@Larme 使用 while 循环打印所有对 sum 8 是否很好?
-
你的代码looks somewhat familiar :)