华为面试题(8分钟写出代码)

更新时间:2016-03-10 18:00:23

题目:有两个数组a,b,大小都为n,数组元素的值任意,无序;
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差小。

我的方法有:

  1. 在a和b中寻找使得x在(0,A)之间并且接近A/2的i和j,交换相应的i和j元素,重新计算A后,重复前面的步骤直至找不到(0,A)之间的x为止。
  2. 背包算法:在2n个数中,找出接近sum/2的值的n个数,但当n很大时,效率很低

大家有没有什么更好的算法

北大青鸟免费学电脑火热进行中
名额有限,赶紧报名吧!

发送验证码