主题:“华为面试题!8分钟做出来”,我做的思路,大家帮看一下对不对,谢谢哈~!
原题:有两个数组a,b,大小都为n,数组元素的值任意,无序;
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
原帖http://bbs.misuland.com/bbsstaticweb/bbs_bbsforumannounce1221209363477_2.html
我的答案:
我能想出来怎么做,不过我打字慢,8分钟打不出来!嘿嘿!
前边和大家想的都一样,也是计算出数组a和b的差值c,然后除以2再取整。
之后,再做一个循环过程:
做一个由所有的a和b的元素差值生成的二维数组sub[i][j]。然后,遍历这个数组寻找和c差值最小的元素,交换数组a和b中的元素i和j。如果,sub[i][j]和c的差值小于或等于1,结束循环,否则,继续。
大家帮看看啊!谢谢了!有写代码快的,帮忙写出来验证一下,不胜感激啊 !
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
原帖http://bbs.misuland.com/bbsstaticweb/bbs_bbsforumannounce1221209363477_2.html
我的答案:
我能想出来怎么做,不过我打字慢,8分钟打不出来!嘿嘿!
前边和大家想的都一样,也是计算出数组a和b的差值c,然后除以2再取整。
之后,再做一个循环过程:
做一个由所有的a和b的元素差值生成的二维数组sub[i][j]。然后,遍历这个数组寻找和c差值最小的元素,交换数组a和b中的元素i和j。如果,sub[i][j]和c的差值小于或等于1,结束循环,否则,继续。
大家帮看看啊!谢谢了!有写代码快的,帮忙写出来验证一下,不胜感激啊 !