题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版)

#-*- coding:utf-8 -*-

class Magic:
'''
a:用于存储数组a
b:用于存储数组b
num:用于存储数组最后的结果
flag:当已经没有可以移动的数据,flag置为1
'''
def __init__(self,a,b):
self.a=a
self.b=b
self.num=0
self.flag=0
'''
avg_a:存储数组a的平均值
avg_b:存储数组b的平均值
当avg_a>avg_b时,表示数组a中可以移动到b中,移动一个处于avg_b~avg_a之间的数,
移动之后,重新计算avg_a、avg_b,看是否还有处于avg_b~avg_a之间的数,有,继续
递归,没有,flag置为1;当avg_a<avg_b时同理。
'''
def fun(self):
avg_a=float(sum(self.a)/(len(self.a)*1.0))#取浮点数
avg_b=float(sum(self.b)/(len(self.b)*1.0))#取浮点数
if self.flag==0:
if avg_a>avg_b:
self.num+=1
self.get_num_a(avg_a,avg_b)
self.fun()
elif avg_b>avg_a:
self.num+=1
self.get_num_b(avg_a,avg_b)
self.fun()
else:
return
else:
return #当avg_a>avg_b,执行该方法
def get_num_a(self,avg_a,avg_b):
for i in range(len(self.a)):
if self.a[i]>=avg_b and self.a[i]<=avg_a:
self.a.remove(self.a[i])
self.b.append(self.a[i])
break
#最后一个数都不符合要求,表明其中没有在avg_b~avg_a之间的数
if i==len(self.a)-1:
self.flag=1
return
#当avg_b>avg_a,执行该方法
def get_num_b(self,avg_a,avg_b):
for i in range(len(self.b)):
if self.b[i]>=avg_a and self.b[i]<=avg_b:
self.b.remove(self.b[i])
self.a.append(self.b[i])
break
# 最后一个数都不符合要求,表明其中没有在avg_b~avg_a之间的数
if i==len(self.b)-1:
self.flag=1
return
if __name__=="__main__":
n_m=raw_input()
n=raw_input().split(' ')
m=raw_input().split(' ')
a=[int(i) for i in n]
b=[int(j) for j in m]
magic=Magic(a,b)
magic.fun()
print magic.num-1

2018春招-今日头条笔试题-第四题(python)的更多相关文章

  1. 2018春招-今日头条笔试题-第三题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出‘1234567890’,对于输入表达试获得对应的结果利用python内置函数eval ...

  2. 2018春招-今日头条笔试题-第二题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 利用深度优先搜索 #-*- coding:utf-8 -*- class DFS: ''' num:用于存储最后执行次 ...

  3. 2018春招-今日头条笔试题-第一题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 要想得到输入的数字列中存在相隔为k的数,可以将输入的数字加上k,然后判断其在不在输入的数字列中即可. #-*- cod ...

  4. 2018春招-今日头条笔试题5题(后附大佬答案-c++版)

    1题目描述 在n个元素的数组中,找到差值为k的除重后的数字对 输入描述 第一行:n和k,n表示数字的个数,k表示差值 第二行:n个整数 输入样例 输入: 5 2 1 5 3 4 2 输出: 3 说明: ...

  5. 剑指Offer——完美+今日头条笔试题+知识点总结

    剑指Offer--完美+今日头条笔试题+知识点总结 情景回顾 时间:2016.9.28 16:00-18:00 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:完美世界笔试 ...

  6. 华为2018软件岗笔试题之第一题python求解分享

    闲来无事,突然看到博客园首页上有人写了篇了华为2018软件岗笔试题解题思路和源代码分享.看了下题目,感觉第一题能做出来,就想着用刚刚学的python试着写一下,花费的时间有点长~~,看来又好长时间没练 ...

  7. Trie树/字典树题目(2017今日头条笔试题:异或)

    /* 本程序说明: [编程题] 异或 时间限制:1秒 空间限制:32768K 给定整数m以及n个数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大 ...

  8. Python3从零开始爬取今日头条的新闻【四、模拟点击切换tab标签获取内容】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  9. 百度2016研发project师笔试题(四)

    百度2016研发project师笔试题(四) 2015/12/8 10:42(网上收集整理的,參考答案在后面.若有错误请大神指出) 1. 关于MapReduce的描写叙述错误的是() A. 一个Tas ...

随机推荐

  1. (线段树 区间查询更新) Can you answer these queries? -- hdu--4027

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=4027 分析:因为这个操作是把一个数变成平方根,所以显得略棘手,不过如果仔细演算的话会发现一个2^64数的 ...

  2. jmap的几个操作要慎用

    JDK中带有了一堆的工具是可以用来查看运行状况,排查问题的,但对于这些工具还是要比较清楚执行后会发生什么,否则有可能会因为执行了一个命令就导致严重故障,重点讲下影响比较大的jmap. 最主要的危险操作 ...

  3. java线程一

    我们可以在计算机上运行各种计算机软件程序.每一个运行的程序可能包括多个独立运行的线程(Thread).线程(Thread)是一份独立运行的程序,有自己专用的运行栈.线程有可能和其他线程共享一些资源,比 ...

  4. Oracle sql 优化の索引监控

    1.监视索引是否使用 除了主键是完整性约束而自动变为索引外,创建普通索引的目的就是为了提高查询速度,如果我们创建了索引而没有被使用,那么这些不被使用的索引将起到阻碍性能的作用. 语法: --检查某个索 ...

  5. 微软DevOps软件开发高级培训课程(深圳站) 2016.04.06

    深圳特区云集了国内众多大型IT企业,作为北上广深的一线城市,当之无愧! 我们在深圳同方信息港的微软办公室是举行培训,60人的培训教室,生生被挤满了80人,过道都被全部占用了.可惜由于换了电脑,把照片搞 ...

  6. 基于Quartz.net的远程任务管理系统 一

    在上一篇绪中,已经介绍了整个项目的情况下了,接下来就是开始一步步做起来了. 首先:先整个我们的Job任务表,以及Job执行日志表.SQL如下: drop table if exists job_inf ...

  7. JavaScript正则表达式匹配中英文以及常用标点符号白名单写法

    我们在编程中经常会遇到特殊字符过滤的问题,今天我们提供一种白名单方式过滤 直接上代码 function RegEXP(s) { var rs = ""; for (var i = ...

  8. C# 实现邮件代发

    由于自己很好奇,有一些推广之类的 邮件,发件人后面,都有一个 由 .... 代发. 所以,查找了一些资料,来验证了一下实现方法. 咱们先来看看,实现代发的 理想效果图 当然,这一种,是利用 代发的 邮 ...

  9. Windows下安装NTP服务器

    NTP服务器介绍 NTP服务器[Network Time Protocol(NTP)]是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高 ...

  10. Algebraic Kernel ( Arithmetic and Algebra) CGAL 4.13 -User Manual

    1 Introduction Real solving of polynomials is a fundamental problem with a wide application range. T ...