免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 天魔封神霸
打印 上一主题 下一主题

【华为公司Python面试题】,要求10分钟写出代码。。。 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2011-03-10 17:44 |只看该作者
  1. def fun(list_a,list_b,index):     
  2.     if list_a[index+1] >= list_b[index]:
  3.         _copy=list_b[index]
  4.         list_b[index]=list_a[index+1]
  5.         list_a[index+1]=list_b[index+1]
  6.         list_b[index+1]=_copy
  7.     elif list_a[index+1] < list_b[index] and list_a[index+1] > list_b[index+1]:
  8.         _copy=list_b[index+1]
  9.         list_b[index+1] = list_a[index+1]
  10.         list_a[index+1] = _copy
  11.     return list_a,list_b

  12. def exchange_elments_of_two_lists(list_a,list_b):   
  13.     list_a.sort(reverse=True)
  14.     list_b.sort(reverse=True)
  15.     for index in xrange(0,len(list_a)-1):
  16.         if list_a[index] > list_b[index]:           
  17.             [list_a,list_b]=fun(list_a,list_b,index)        
  18.         elif list_a[index] < list_b[index]:           
  19.             [list_b,list_a]=fun(list_b,list_a,index)         
  20.     return list_a,list_b
复制代码

论坛徽章:
0
52 [报告]
发表于 2011-03-10 17:48 |只看该作者
python made it easy, Right?

论坛徽章:
0
53 [报告]
发表于 2011-03-10 18:31 |只看该作者
和上次我发的最大子段和实现算法一样,仍用递归实现,我将把效率抛诸脑后,

论坛徽章:
0
54 [报告]
发表于 2011-03-11 12:50 |只看该作者
华为就是不一样啊

思路是有啊,可是10分钟有点少啊,说不定是打错字什么的,都要使时间超过10分钟啊,这人生啊

论坛徽章:
0
55 [报告]
发表于 2011-03-12 14:09 |只看该作者
  1. la = [3, 34, 435, 45, 3, 34, 678, 3245]
  2. lb = [23, 3, 12, 3245, 234, 457, 345, 435]

  3. def split(lst):
  4.     halfsize = len(lst) / 2
  5.     return lst[:halfsize], lst[halfsize:]

  6. la, lb = split(sorted(la + lb))
  7. print sum(la) - sum(lb)
复制代码

论坛徽章:
0
56 [报告]
发表于 2011-03-12 22:37 |只看该作者
不要一大堆人围进来,整天喊着思路,要么你就贴代码,要么你们就飘过

好比大学生学数据结构,概念理论说的头头是道,编起程来一个代码都敲不了

论坛徽章:
0
57 [报告]
发表于 2011-03-12 22:37 |只看该作者
看清楚题目,大佬..

论坛徽章:
0
58 [报告]
发表于 2011-03-14 13:03 |只看该作者
回复 57# a515200


    有什么不对呢? 难道你能找到比-8917更小的差...

论坛徽章:
0
59 [报告]
发表于 2011-03-14 13:41 |只看该作者
这个题目实际上应该叫做    两序列元素的总和之差的绝对值应为最小,我想华为的人是故意这样做的,有点故弄玄虚


题目要求是:
要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
应该列出两个交换后的序列

论坛徽章:
0
60 [报告]
发表于 2011-03-18 14:26 |只看该作者
本帖最后由 专操五毛 于 2011-03-18 14:30 编辑

.....................................................................................................
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP