2 抽象
将一个包含m个整数的数组分成n个数组,每个数组的和尽量接近
3 思路
这个问题是典型的动态规划的问题,理论上是无法找到最优解的,但是本次只是为了解决实际生产中的问题,而不是要AC,所以我们只需要找到一个相对合理的算法...输入:int数组,分组数divisionNum
对数组倒序排序
计算数组的平均值 avg
遍历数组。...然后将剩下的数重新求平均,表示需要让剩下的数分配得更加平均,这样可以避免极值的影响,然后重新开始下一轮计算
如果第一个数num小于avg,我们将这个数加入到数组中,然后我们需要找到一(或若干)个数,使得其和更接近...我们举一个栗子:
数组为:500, 18, 28, 2, 27, 35, 22, 10, 6, 5, 3, 2, 1;分为4组
排序为:500, 35, 28, 27, 22, 18, 10, 6, 5...倒序排序
sort.Sort(sort.Reverse(sort.Float64Slice(numberListFloat64)))
for cnt := 0; cnt < arrNum; cnt