我们有几个正数和负数,它们的总和变为零。例如:-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,直到没有数字
有没有人知道这个问题的最佳解决方案?
还是有人知道一个有最佳解决方案的类似问题吗?
提前致谢