【发布时间】:2017-10-29 21:37:24
【问题描述】:
我有一个大散列,其中键是名称,例如“Alex”,值是数字,例如“100”。 如何将此哈希拆分为包含键的多个数组,其中值的总和不超过某个阈值?
示例
我有哈希
{"Alex"=>50, "Bamby"=>100, "Jordan"=>300, "Ger"=>700, "Aus"=>500, "Can"=>360}
我想从一开始就将它分成 1000 包(不必从头开始,但会很好), 意思:
array1 = ["Alex", "Bamby", "Jordan"] # not "Ger" bc it would exceed the 1000 in sum
array2 = ["Ger"] # not the Aus because it again would exceed the 1000
array3 = ["Aus", "Can"]
最好的解决方案实际上是对其进行优化,使代码使数组全部接近或等于 1000,但我猜这是下一步...
提前非常感谢您! ~亚历克斯
【问题讨论】:
-
查看
Enumerable#chunk_while了解一种方法。