问题描述
我看到很多通过删除/插入元素或增加/减少元素的值来最小化数组元素之间的最大差异。今天想到了一个变种,一直在寻找解决方案。
问题: 给定一个包含 n 个元素且目标大小为 m 的数组,1
我的第一直觉是
while(array.size() > m)
mindiff = difference of merge(array[0],array[1])
mindiffarray = merge(array[0],array[1])
for(i = 0 to array.size()-2)
subarray = merge(array[i],array[i+1])
if difference of subarray < mindiff
mindiff = difference of subarray
mindiffarray = subarray
array = mindiffarray
return array
这将适用于 [3,2,1,4] m = 3 -> [3,3,4], 但不是 [3,5] m = 3 -> [7,5] ([5,5,5] 想要)
我想也许这可以使用动态编程来解决,但不确定如何解决。 任何指针将不胜感激。谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)