有两个序列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面试题、知识点,用于程序员应聘学习参考,提供代码+题型等资料 ...
### 软通动力外派华为面试题解析 #### 1. 数据类型:int `int`是编程语言中最常见的数据类型之一,用于存储整数。在不同的编程环境中,`int`类型的大小可能有所不同,通常它可以存储从-2,147,483,648到2,147,483,...
【华为面试题】是本文的核心话题,这通常指的是华为公司在招聘过程中可能会问到的问题,涵盖了硬件和软件领域,反映了华为对求职者技能和知识的全面要求。这些面试题旨在评估候选人在技术理解、问题解决、逻辑思维...
基于Python的华为OD算法面试题——Huawei-OD-Python-master。 本项目主要基于Python语言,使用很多Python语言的标准库,希望大家能通过题目,更好地熟悉Python语法,并灵活运用语法特性。 在推荐资料部分,给出了...
Python后端面试题关于Python的面试题23页BAT大厂互联网面试题.pdf,Python语言特性,操作系统相关,数据库相关,计算机网络相关,编程题。阿里,腾讯,百度,华为,网易,字节,头条,阿里云,腾讯云,京东,饿了么...
2. **华为面试题3.mht** 这个文件可能包含的是第三套华为面试题目,涵盖范围广泛,可能包括操作系统原理(如进程与线程、内存管理、文件系统)、网络知识(TCP/IP协议、HTTP协议、网络安全)、数据库管理(SQL查询...
在技术面试中,面试官可能会问到编程语言(如C++、Java、Python等)的基本知识,数据结构与算法,操作系统原理,计算机网络,数据库管理,软件工程等。此外,对于特定职位,如云计算、5G通信、人工智能等,还会有...
### 华为OD社招Python开发面试准备及流程解析 #### 一、华为OD模式简介 华为OD(Outsourcing Developer)模式是一种特殊的招聘方式,指的是通过与第三方人力资源外包公司合作,将员工招聘进来,但实际上这些员工的...
### 华为OD社招Python开发面试准备及流程解析 #### 一、华为OD模式简介 华为OD(Outsourcing Developer)模式是一种特殊的招聘方式,指的是通过与第三方人力资源外包公司合作,将员工招聘进来,但实际上这些员工的...
在IT行业的求职过程中,华为和腾讯...总的来说,华为和腾讯的测试面试题涵盖的范围广泛,既要求扎实的专业技能,又看重解决问题和适应企业环境的能力。通过全面的准备和持续的学习,相信你能成功应对这样的面试挑战。
这份“大公司面试题集(华为、中软、中兴)”包含了华为、中软和中兴等知名企业的面试题目,为准备应聘者提供了宝贵的复习资源。以下是这些公司可能涉及的一些核心知识点,以及对于这些知识点的详细说明。 1. **...
整理了一下华为往届笔试面试题,希望对大家有帮助。超级有用的面试题:Java常见面试题 常见算法面试题 数据库常见面试题 操作系统常见面试题 C/C++常见面试题 大数据常见面试 python常见面试。
3. **软件开发与编程**:面试中可能会考察C++、Java、Python等编程语言,尤其是对算法和数据结构的掌握。理解并能熟练运用常见的排序算法(如快速排序、归并排序)、搜索算法(如二分查找、深度优先搜索),以及基本...
以下是一些可能出现在“华为及其他外包公司软件测试面试题”中的关键知识点详解: 1. **测试基础理论**: - **测试用例设计**:包括等价类划分、边界值分析、因果图法、正交排列等,这些都是设计高效测试用例的...
《华为面试题精要解析与拓展》 华为作为全球领先的ICT解决方案提供商,其面试题库深受广大求职者关注。这份“华为面试题吐血整理”涵盖了校招面试、软件面试、硬件面试、算法挑战、机考实践以及群面策略等多个方面...
【华为历届面试笔试试题总汇】是一个集合了华为公司历年面试及笔试环节的题目资源,对于准备应聘华为职位的求职者来说,这是一份非常有价值的学习材料。这份资料通常包含了技术类、管理类、综合能力类等多种类型的...
这个资料对于正在准备华为Python编程相关考试或面试的学员来说具有很高的参考价值。现在,我们将深入探讨其中可能涵盖的Python知识点。 1. **Python基础语法**:这是所有Python学习者必须掌握的部分,包括变量声明...
华为重视软件开发能力,面试中可能涉及C/C++、Java、Python等主流编程语言,以及数据结构(如链表、树、图、队列、堆)、排序算法(如冒泡、选择、插入、快速、归并)、查找算法(如线性、二分、哈希)等基础算法...
【标题】"中兴华为类笔试面试题集"揭示了这个资源主要涵盖了中兴和华为这两家知名通信技术公司的招聘考核题目。对于求职者来说,尤其是对想进入IT或者通信行业的毕业生,熟悉这类题型是至关重要的。中兴和华为作为...
本压缩包文件“各个公司面试题(百度、华为、中兴、烽火科技等)”包含了这些知名IT公司的面试题目,对于准备面试的朋友们来说,是一个宝贵的参考资料。 首先,我们来看看“百度”的面试题。百度作为中国互联网巨头...