给定一个整数列表和一个和值,返回前两个值(从左边)加起来形成总和.
例如,给定:
sum_pairs([10, 5, 2, 3, 7, 5], 10)
Run Code Online (Sandbox Code Playgroud)
[5, 5](在索引[1, 5]处[10, 5, 2, 3, 7, 5])加起来10,和[3, 7](在索引处[3, 4])加起来10.其中,整个对[3, 7]更早,因此是正确的答案.
这是我的代码:
def sum_pairs(ints, s)
result = []
i = 0
while i < ints.length - 1
j = i+1
while j < ints.length
result << [ints[i],ints[j]] if ints[i] + ints[j] == s
j += 1
end
i += 1
end
puts result.to_s
result.min
end
Run Code Online (Sandbox Code Playgroud)
它工作正常,但效率太低,需要12000毫秒才能运行.嵌套循环是效率低下的问题.我怎么能改进算法?