使用JS将数组分区为3列

时间:2014-03-14 18:57:19

标签: javascript data-partitioning

给定未知长度的未知整数数组,其值也未知,如何将它们组织成三列,以便最左边的组的总和最大,中间的第二大和第三是最小的,群体的大小尽可能接近。

此处的实际目标是将<ul>元素的大小(它们包含的<li>元素的数量)组织成三列。我正在寻找javascript中的答案,但是如果有人能够简单地解释逻辑就足够了:)

换句话说,给定一个数组,如......

var set = [1, 1, 4, 6, 7, 10, 3, 6]

将被组织为......

var left   = [10, 4]
var middle = [6, 7]
var right  = [3, 6, 1, 1]

还有其他可能性。第一列总和为14,但这可能是[6, 4, 3, 1]等各种组合的结果。以这种方式组织会使得很难为下一列获得正确的值,因此最好使用之前的最大数字,如上例所示。 *

我确信之前已经被问过并回答过,但我不知道如何查看。我做了一些研究,发现这几乎是Partitioning Problem,虽然我仍然不知道如何做到这一点,或者这里有一个简单的可行答案。任何适合我给出的简单例子的东西都应该足够了。

* 编辑:第二个想法,这可能是一个不正确的假设。

0 个答案:

没有答案