有两个序列a,b,大小都为n,序列元素的值任意整形数,无序;
要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小。
1. 将两序列合并为一个序列,并排序,为序列Source
2. 拿出最大元素Big,次大的元素Small
3. 在余下的序列S[:-2]进行平分,得到序列max,min
4. 将Small加到max序列,将Big加大min序列,重新计算新序列和,和大的为max,小的为min。
def mean( sorted_list ):
if not sorted_list:
return (([],[]))
big = sorted_list[-1]
small = sorted_list[-2]
big_list, small_list = mean(sorted_list[:-2])
big_list.append(small)
small_list.append(big)
big_list_sum = sum(big_list)
small_list_sum = sum(small_list)
if big_list_sum > small_list_sum:
return ( (big_list, small_list))
else:
return (( small_list, big_list))
tests = [ [1,2,3,4,5,6,700,800],
[10001,10000,100,90,50,1],
range(1, 11),
[12312, 12311, 232, 210, 30, 29, 3, 2, 1, 1]
]
for l in tests:
l.sort()
print
print "Source List:\t", l
l1,l2 = mean(l)
print "Result List:\t", l1, l2
print "Distance:\t", abs(sum(l1)-sum(l2))
print '-*'*40
输出结果
Source List: [1, 2, 3, 4, 5, 6, 700, 800]
Result List: [1, 4, 5, 800] [2, 3, 6, 700]
Distance: 99
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Source List: [1, 50, 90, 100, 10000, 10001]
Result List: [50, 90, 10000] [1, 100, 10001]
Distance: 38
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Source List: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Result List: [2, 3, 6, 7, 10] [1, 4, 5, 8, 9]
Distance: 1
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Source List: [1, 1, 2, 3, 29, 30, 210, 232, 12311, 12312]
Result List: [1, 3, 29, 232, 12311] [1, 2, 30, 210, 12312]
Distance: 21
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
分享到:
相关推荐
python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 python面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 ...
软通动力外派华为面试题
Python后端面试题关于Python的面试题23页BAT大厂互联网面试题.pdf,Python语言特性,操作系统相关,数据库相关,计算机网络相关,编程题。阿里,腾讯,百度,华为,网易,字节,头条,阿里云,腾讯云,京东,饿了么...
整理了一下华为往届笔试面试题,希望对大家有帮助。超级有用的面试题:Java常见面试题 常见算法面试题 数据库常见面试题 操作系统常见面试题 C/C++常见面试题 大数据常见面试 python常见面试。
校园招聘笔试题目及答案
校园招聘笔试题目及答案
leetcode华为面试题 Introduction Hello TrustedExamBook Python3 教程及参考链接 【Python 教程】 【华为公司算法总结】 【算法总结汇总帖】 【lab 的算法小抄】 【LeetCode官方推出的的经典面试题目清单】
主要为大家解析了你必须提前准备的Python程序员面试题答案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
leetcode华为面试题 Books Computer Science 谷歌公司推荐的程序员必修课 Programmer-basic - 程序员的自我修养 Data science neural-networks-and-deep-learning Algorithm Algorithm Essentials 我的算法之路 ...
汽水瓶.py,求int型正整数在内存中存储时1的个数.py,求小球落地5次后所经历的路程和第5次反弹的高度.py,取近似值.py,删除字符串中出现次数最少的字符.py,蛇形矩阵.py,识别有效的IP地址和掩码并进行分类统计.py,输入一...
这题因为限定了4位数,所以只考虑了4位数的情况,吃点分享一个大小写转换的源码,里面有不限位数的情况,当时调试的很痛苦,思想差不多。 代码如下:void iConvert(int digit){ char a[5][10] = {“千”,”百”,”...
Github技术面试必备基础知识 GithubAI算法岗求职攻略 Github (amusi)面向视觉算法开发者的极市社区,微信公众号:极市平台CVMart Github阿里、腾讯、百度、华为、京东、搜狗和滴滴最新面试题汇集 Github「面试算法...
来源于华为的面试题 具体功能:给定ASCⅡ码编制的英文文本文件,可以扫描出其中所有的英文单词出现的频率,不能识别符号 使用VS2012开发,请不要提出许可问题,不兼容的可以建工程导入代码,文件不多
笔面试经验总结 3月28日8pm-10:30 pm华为OD机考 第一题:密文转换 输入= xy 预期= ya 输入= abcde (总之,第一个字母前移1,第二个前移2,第三个前移4,之后每个前移f(n-3)+ f(n-2)+ f (n-1)格) 首先题考的...
目前正在更新网易和华为的编码题。 力码 LeetCode 解决方案按关键思想分类。 Python 练习 Python 套接字实现: /socket_multithread 。 Python OO 特性练习: /object_oriented Python 专属特性说明: /python_...
ee笔试题 IT-Interview-experience 2019&2020秋招面试经验大全(含 1900+ 25个岗位的面试经验) 2020届秋招面经分类汇总(各个岗位,万字长文,共 1901 篇) 来源:牛客网 个人整理的 2019 & 2020的秋招汇总,按技术...
高级java笔试题 IT-Interview-experience 2019&2020秋招面试经验大全(含 1900+ 25个岗位的面试经验) 2020届秋招面经分类汇总(各个岗位,万字长文,共 1901 篇) 来源:牛客网 个人整理的 2019 & 2020的秋招汇总,...
从前端到后台,从开发语言到数据库,算法、内存、硬件、网络通信、安全、并发等等等等,覆盖面广泛,题目精准,刀刀致命。...包含C\C++\Java\Python\Ruby\Go\PHP\JavaSctript\MongDB\MySQL\Redis.......