MST

星途 面试题库

面试题:Ruby代码优化之循环优化

假设有一个包含1000个整数的数组,要找出所有能被3整除的数,并计算它们的平方和。请用Ruby实现该功能,并阐述如何对代码进行简单优化以提高效率。
44.2万 热度难度
编程语言Ruby

知识考点

AI 面试

面试题答案

一键面试
arr = (1..1000).to_a
sum = arr.select { |num| num % 3 == 0 }.map { |num| num**2 }.sum
puts sum

优化方法

  1. 避免中间数组生成:上述代码中selectmap方法会生成中间数组。可以通过遍历数组时直接判断并计算平方和来避免这种情况,减少内存开销。
arr = (1..1000).to_a
sum = 0
arr.each do |num|
  if num % 3 == 0
    sum += num**2
  end
end
puts sum
  1. 使用并行计算:如果计算环境支持并行计算,可以使用parallel等并行处理库,将数组分割为多个部分并行计算平方和,最后汇总结果,在多核CPU环境下可显著提升计算速度。但需要注意并行计算带来的资源管理和同步开销。