面试题答案
一键面试large_array = (1..10000).to_a
mapping_hash = { odd: :odd_number, even: :even_number }
result = {}
mapping_hash.each do |key, value|
result[value] = []
end
large_array.each do |num|
key = num.odd?? mapping_hash[:odd] : mapping_hash[:even]
result[key] << num
end
p result
性能优化考虑
- 减少重复计算:通过一次遍历数组,减少多次扫描带来的时间开销。
- 空间预分配:预先初始化结果哈希表中的数组,避免在循环中频繁创建新数组带来的性能损耗。这样在每次向数组中添加元素时,不需要每次都为数组分配新的内存空间。