一道算法题:华为面试题
2014-02-11 15:59
489 查看
http://bbs.chinaunix.net/thread-855126-1-1.html
有两个数组a,b,大小都为n,数组元素的值任意,无序;
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
我们假设有数据:
a: 6 20 100
b: 19 20 70
在网站上看到有如下解法:
解法 1,
按该方法:
则结果为:
a: 6 50 100
b: 19 40 70
差值为:27.
解法2.
按此种方案,则:
a: 6 40 100
b: 19 50 70
差值为:7
有两个数组a,b,大小都为n,数组元素的值任意,无序;
要求:通过交换a,b中的元素,使数组a元素的和与数组b元素的和之间的差最小
我们假设有数据:
a: 6 20 100
b: 19 20 70
在网站上看到有如下解法:
解法 1,
把a,b 2数组的元素放到数组3(2n大小) 中进行排序, a 先取最小的,b先取次小的, 然后根据a,b已取元素和的大小来决定谁来取剩下元素中最小的。策略是, 已取得的所有元素之和大的来取C中剩下元素中的最小者。如此反复,直到取完。每次都是a,b各取一个。 |
则结果为:
a: 6 50 100
b: 19 40 70
差值为:27.
解法2.
按此种方案,则:
a: 6 40 100
b: 19 50 70
差值为:7
相关文章推荐
- 背包算法解决一道华为面试题
- 给出我的华为的一道面试题算法
- 每日一道算法题:Google面试题:给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数
- 华为一道面试题,不能用系统的字符串函数求对等数,用最简单的方法实现。
- 华为的一道面试题的解答(自己的另解)
- 【算法】一道有趣的GOOGLE面试题
- 华为的一道面试题的解答
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- C#算法一道面试题浅析
- 每日一道算法题:Google面试题:判断一个自然数是否是某个数的平方
- 一道冒泡排序的算法面试题
- 【算法】一道有趣的GOOGLE面试题 --【解法2】
- 微软等数据结构+算法面试100题(8)--华为面试题
- 为博客园上一道面试题写的代码-一道求单向链表倒数第N个结点的算法题。
- 一道华为面试题
- 华为的一道面试题
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 偶见一道华为笔试题(简单的题更显算法啊--不可忽视的数学)
- 一道面试题:从一个字符串中找出第一个不重复字符;算法一;