腾讯笔试第三题思路哪错了&第四题为什么topk超时
第三题把一个数组分成两个数组a1,a2,要求两个数组长度差不超过1并且数组和的差sum(a1)-sum(a2)最小。
我的想法是原数组排序后从最后大的开始分配,a1的和小就分配到a1,a2和小就a2。直到分配完或者某一个数组的长度到达原数组长度的一半,把剩下的都分到另一个数组里去(原数组长度奇数的话,留下一个最小值分给和小的)。然后一个case也没过⊙▽⊙,自己没测试出会出错的case,不知道哪里错了。
第四题是类似于topk堆排,一次次找最小,如果减去该减的值小于零不符合条件就继续找下一个最小。为啥只过了0.7?有更好的方法吗?
#腾讯#
我的想法是原数组排序后从最后大的开始分配,a1的和小就分配到a1,a2和小就a2。直到分配完或者某一个数组的长度到达原数组长度的一半,把剩下的都分到另一个数组里去(原数组长度奇数的话,留下一个最小值分给和小的)。然后一个case也没过⊙▽⊙,自己没测试出会出错的case,不知道哪里错了。
第四题是类似于topk堆排,一次次找最小,如果减去该减的值小于零不符合条件就继续找下一个最小。为啥只过了0.7?有更好的方法吗?
#腾讯#