小编Hei*_*han的帖子

如何提高嵌套循环的算法效率

给定一个整数列表和一个和值,返回前两个值(从左边)加起来形成总和.

例如,给定:

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毫秒才能运行.嵌套循环是效率低下的问题.我怎么能改进算法?

ruby iteration algorithm loops

-1
推荐指数
1
解决办法
91
查看次数

标签 统计

algorithm ×1

iteration ×1

loops ×1

ruby ×1