用最小差异目标求和几个数

时间:2017-01-09 14:54:20

标签: algorithm optimization

我们有几个正数和负数,它们的总和变为零。例如:-2,1,-2,-2,1,2,2。 这些数字必须在列表中排序,使得在任何情况下它们的总和之间的最大差异最小化。例如,如果我们将它们排序为 -2,2,1,1,-2,2,-2的总和变为:-2,0,1,2,0,2,0导致最大差异4(-2和2之间的差异)。 一个贪心算法(可能是最简单的算法)可以写成:

1-将数字放在第一位

2-将下一个数字放在列表中,使得从第一个位置到当前位置的总和接近于零。

3-重复步骤2,直到没有数字

有没有人知道这个问题的最佳解决方案?

还是有人知道一个有最佳解决方案的类似问题吗?

提前致谢

0 个答案:

没有答案