题目描述: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. changetoutf-8

    import chardet import os # ANSI文件转UTF-8 import codecs import os def strJudgeCode(str): return charde ...

  2. DVWA

    DVWA默认的用户有5个,用户名密码如下(一个足以): admin/password gordonb/abc123 1337/charley pablo/letmein smithy/password

  3. Mybatis中的update动态SQL语句

    Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...

  4. 获取手机的唯一标示uuid

    NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

  5. Android-CallUtil工具类

    打电话相关的工具类: public final class CallUtil { /** * 拨打电话(直接拨打电话) * @param phoneNum 电话号码 */ @SuppressLint( ...

  6. api接口签名相关文章

    http://www.cnblogs.com/hnsongbiao/p/5478645.htmlhttp://www.cnblogs.com/codeon/p/5900914.html?from=ti ...

  7. 理解load averages

      今天在客户的生产环境中遇到了网络丢包的问题,但是查看我方部署smokeping监控发现对同一条线路监控,我方监控显示正常,判断丢包是由客户服务器负载过高导致,原因及排查思路如下: 使用uptime ...

  8. PostgreSQL 用户和权限管理

    PostgreSQL 用户和权限管理 创建 CREATE ROLE rolename;CREATE USER username;CREATE USER和CREATE ROLE的区别在于,CREATE ...

  9. 射线与平面的相交检测(Ray-Plane intersection test)【转】

    射线的定义 在欧几里德几何中,射线的定义是:直线上一点和它一旁的部分.由此可知,射线有两个性质,一是只有一个端点,二是一端无限延伸. 射线的参数方程 其中p0是射线的起点, u是射线的方向向量,t & ...

  10. 拒绝“高冷”词汇!初学C#中实用的泛型!

    初学C#,整天对着业务逻辑,写反反复复的“过程型”代码逻辑十分枯燥,不如用点新东西提升一下代码效率,让代码看起来更有逼格?! 好,下面我们看看C#中简单易学的泛型. 首先,我写了一个这样的方法 --- ...