最近在网上偶然看到此题:

有两个序列a,b,大小都为n,序列元素的值任意整形数,无序;

要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小

经过一番思索,我试着用穷举法来解一下这道题,大概思路如下:

1、分别求a,b序列元素之和sum_a、sum_b
2、算出min = abs(sum_a - sum_b)

3、进行n*n遍历:交换a,b中的任意元素;每次交换都算出交换后sum(a)-sum(b)的绝对值,作为二维序列t的元素。

其中sum(a)-sum(b) = sum_a - a[i] +b[j] - ( sum_b + a[i] -b[j] ) = sum_a -sum_b +2*( b[j] -a[i] )
4、另min_t = t[0][0],接着遍历t序列:若min_t > t的元素,则用t的元素作为新的min_t值

5、判断min和min_t的大小:若min_t < min ,则a,b做元素交换;反之,则不用。

最终输出的即是满足要求的序列。

代码如下:

#******穷举法******Python3.5******
import random
def random_int_list(start,stop,length):   #产生随机序列start,stop = (int(start),int(stop)) if start <= stop else (int(stop),int(start))length = int(abs(length)) if length else 0random_list = []for i in range(length):random_list.append(random.randint(start,stop))return random_lista = random_int_list(1,100,5)
b = random_int_list(1,100,5)
t = [[0 for i in range(5)] for i in range(5)] #初始化二维序列t
print('a = ',a,'b = ',b,'t = ',t)
sum_a = sum(a)
sum_b = sum(b)
min = abs(sum_a - sum_b)
print('sum_a = ',sum_a,'sum_b = ',sum_b,'min = ',min)
print('===============================================')for i in range(5):for j in range(5):t[i][j] = abs(sum_a -sum_b + 2*(b[j] - a[i]))
print('t = ',t)
print('===============================================')min_t = t[0][0]
for i in range(5):for j in range(5):if( min_t > t[i][j]):min_t = t[i][j]temp1= itemp2 = j
if min > min_t:temp = a[temp1]a[temp1] = b[temp2]b[temp2] = temp
print('a = ',a,'b = ',b)

python面试题大合集

华为Python面试题相关推荐

  1. 华为python面试题库_我收集了100道Python面试题,开源到了Github

    对于机器学习算法工程师而言,Python是不可或缺的语言,它的优美与简洁令人无法自拔.那么你了解过Python编程面试题吗?从Python基础到网页爬虫你是否能全方位Hold住?今天,机器之心为读者们 ...

  2. python公司面试题集锦 python面试题大全

    问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Par ...

  3. 百道Python面试题实现,搞定Python编程就靠它

    机器之心报道 机器之心编辑部 想要备战 Python 面试,这两个项目有千道 Python 问题与实现. 之前机器之心介绍了 PHD 大牛的求职之路,很多读者感觉这位大牛太厉害了,他的经历对我们帮助不 ...

  4. 华为OD机试题 - 剩余可用字符集(JavaScript)| 含思路

    华为OD机试题 最近更新的博客 使用说明 本篇题解:剩余可用字符集 题目 输入 输出 示例一 输入 输出 说明 Code 解题思路 华为OD其它语言版本 最近更新的博客 华为od 2023 | 什么是 ...

  5. 华为java机试题限时多久_年薪35万的华为机试题,你完成需要多长时间?

    最近一个朋友通过了华为的面试,需要去参加华为机试,具体什么岗位我就不说了,说年薪可以达到35~40万元,当然了,拿这个年薪在华为应该算是一般水平了,但是相比社会上的其他企业,这样的工资还是蛮吸引人的, ...

  6. 华为OD机试题 - GPU 调度(JavaScript)| 含思路

    华为OD机试题 最近更新的博客 使用说明 本篇题解:GPU 调度 题目 输入 输出 示例一 输入 输出 说明 示例二 输入 输出 说明 Code 解题思路 华为OD其它语言版本 最近更新的博客 华为o ...

  7. 面试前赶紧看了5道Python Web面试题,Python面试题No17

    目录 本面试题题库,由公号:非本科程序员 整理发布 第1题: Flask中的请求上下文和应用上下文是什么? 第2题:django中间件的使用? 第3题: django开发中数据做过什么优化? 第4题: ...

  8. 华为js面试题_四面腾讯与华为,大厂前端面试真BT!

    今年算是经历颇多的一年了,腾讯和华为都走了几趟(一共面试了四个部门),拿了两个offer.(开心.png),但还是挂了两次,有点遗憾. 面试题总结 面试完之后,赶紧总结了一波,前端这个岗位,这两家大厂 ...

  9. 21年最新Python面试题及答案汇总详解(上)

    错过三月找工作的机会,还要错过四月的好时期吗?Python面试你做准备了吗?下面小编整理了一套2021年最新Python常见面试题目,及Python面试题目答案汇总.希望能够帮助到大家. 21年最新P ...

最新文章

  1. oracle统计id出现次数,oracle 统计sql
  2. 微信公众号数据2019_公众号年度数据报告怎么写?2019年公众号年报可一键生成啦!...
  3. EGO首次线下活动分享:Facebook研发团队的高效秘诀
  4. Linux下修改mysql默认最大连接数,查看当前设置的最大连接数
  5. Leetcode 18. 四数之和 (每日一题 20211011)
  6. 定义一个复数类Complex,重载运算符+
  7. 华清远见智能家居ppt_怀揣梦想,一路前行——西安华清与西安培华实训集
  8. 喜欢用Block的值得注意-Block的Retain Cycle的解决方法
  9. 理想的互联网服务后台框架的九个要点
  10. 计算Fibonacci数列第n项的第8种方法(数学推导与Python实现)
  11. led同步回显到计算机屏幕,手把手教您如何将笔记本电脑的画面投屏到LED大屏幕上显示,音视频同步传输...
  12. flutter TabBar设置圆角背景
  13. Unity学习-Prinmatives原形
  14. Python3简单爬虫:爬取猫眼评分top100电影
  15. 【工程师笔记】第六期:一项Xeon E5-2600 v4测试数据的背后
  16. xcode引入sdk_解决Xcode引入第三方SDK找不到头文件
  17. Python 练习实例100例—7
  18. 隐函数求导和相关变化率
  19. 组合数学之隔板法:多元一次方程组解的统计
  20. 小孩子上机器人课好还是编程课好

热门文章

  1. jsp中el表达式创建一个list
  2. (13)ISE14.7bit文件生成mcs文件(FPGA不积跬步101)
  3. (05)FPGA入门条件
  4. (20)FPGA数据接口同步化
  5. FPGA SPI总线协议简介
  6. FPGA设计思想与技巧
  7. 12018.LTC2631电压调节芯片
  8. 电脑cpu风扇转一下就停无法开机_电脑无法正常开机风扇转一下就停的原因及解决方法...
  9. c++ 项不会计算为接受 0 个参数的函数_OFFSET函数从入门到进阶之进阶操作篇(与MATCH组合)...
  10. 【绪论】——声呐概述