【发布时间】:2023-03-04 15:37:01
【问题描述】:
假设我有一个 Int 数组,我想在这个数组中找到一对数,这对数的和等于一个数,如下所示:
func findPair(list: [Int], _ sum: Int) -> (Int, Int)? {
for i in 0..<list.count - 1{
for j in (i+1)..<list.count {
let sumOfPair = list[i] + list[j]
if sumOfPair == sum {
return (list[i], list[j])
}
}
}
return nil
}
第一个参数是一个 Int 数组,第二个参数是一个数字,我们需要比较该数组中的一些对。
例如:
findPair([1,2,3,4,5], 7) // will return (2, 5), because 2 + 5 = 7
但是这个算法的复杂度是O(n^2)。
有没有更快的方法?
【问题讨论】: