打印

华为面试题

[复制链接]
1263|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
秋天落叶|  楼主 | 2012-5-12 09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
txcy| | 2012-5-12 09:55 | 只看该作者
给个思路:
1、两数组A和B归并为一个排好序的数组C
2、清空A和B
3、从C中每次取两个元素分别放入A和B

取数原则:
1、取第一个和最后一个放入A
2、取第二个和倒数第二个放入B
3、依此类推
4、若取到最后只剩两个数了,计算A的和与B的和,将大的放入‘和’较小的数组,小的放入‘和’较大的数组

使用特权

评论回复
板凳
dfsa| | 2012-5-12 09:58 | 只看该作者
先将两个数组快排得到:
1,2,3,98,99,100
1,2,3,4,5,40
然后归并成一个数组c:
1, 1, 2, 2, 3, 3, 4, 5, 40, 98, 99, 100
然后从c中按顺序取值分别给数组a和b,同时注意,如果上次a分到了一个较大的数,那么下次就给它分配一个小一点的数,反之亦然。

使用特权

评论回复
地板
火箭球迷| | 2012-5-12 19:30 | 只看该作者
LS上的思路可行,题目不难

使用特权

评论回复
5
无冕之王| | 2012-5-13 11:24 | 只看该作者
2,3楼的思路都可以借鉴

使用特权

评论回复
6
陈阳| | 2012-5-17 20:56 | 只看该作者
我觉得不能合成一个数组,题目说了,是交换元素。
应该,A,B数据进行排序。
排序完成后,再进行大小比较,从大到小,一个一个比较,再进行交换。

使用特权

评论回复
7
yybj| | 2012-5-17 22:10 | 只看该作者
这个是什么岗位的面试题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:落叶很美

138

主题

3044

帖子

1

粉丝