2018春招-今日头条笔试题-第四题(python)
题目描述: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)的更多相关文章
- 2018春招-今日头条笔试题-第三题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 本题的做法最重要的应该是如何拼出‘1234567890’,对于输入表达试获得对应的结果利用python内置函数eval ...
- 2018春招-今日头条笔试题-第二题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 利用深度优先搜索 #-*- coding:utf-8 -*- class DFS: ''' num:用于存储最后执行次 ...
- 2018春招-今日头条笔试题-第一题(python)
题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版) 解题思路: 要想得到输入的数字列中存在相隔为k的数,可以将输入的数字加上k,然后判断其在不在输入的数字列中即可. #-*- cod ...
- 2018春招-今日头条笔试题5题(后附大佬答案-c++版)
1题目描述 在n个元素的数组中,找到差值为k的除重后的数字对 输入描述 第一行:n和k,n表示数字的个数,k表示差值 第二行:n个整数 输入样例 输入: 5 2 1 5 3 4 2 输出: 3 说明: ...
- 剑指Offer——完美+今日头条笔试题+知识点总结
剑指Offer--完美+今日头条笔试题+知识点总结 情景回顾 时间:2016.9.28 16:00-18:00 19:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:完美世界笔试 ...
- 华为2018软件岗笔试题之第一题python求解分享
闲来无事,突然看到博客园首页上有人写了篇了华为2018软件岗笔试题解题思路和源代码分享.看了下题目,感觉第一题能做出来,就想着用刚刚学的python试着写一下,花费的时间有点长~~,看来又好长时间没练 ...
- Trie树/字典树题目(2017今日头条笔试题:异或)
/* 本程序说明: [编程题] 异或 时间限制:1秒 空间限制:32768K 给定整数m以及n个数字A1,A2,..An,将数列A中所有元素两两异或,共能得到n(n-1)/2个结果,请求出这些结果中大 ...
- Python3从零开始爬取今日头条的新闻【四、模拟点击切换tab标签获取内容】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
- 百度2016研发project师笔试题(四)
百度2016研发project师笔试题(四) 2015/12/8 10:42(网上收集整理的,參考答案在后面.若有错误请大神指出) 1. 关于MapReduce的描写叙述错误的是() A. 一个Tas ...
随机推荐
- changetoutf-8
import chardet import os # ANSI文件转UTF-8 import codecs import os def strJudgeCode(str): return charde ...
- DVWA
DVWA默认的用户有5个,用户名密码如下(一个足以): admin/password gordonb/abc123 1337/charley pablo/letmein smithy/password
- Mybatis中的update动态SQL语句
Mybatis中的CRUD操作(增删改查)中,简单的SQL操作比较直观,如查找操作: <select id="findBySrcId" resultMap="ent ...
- 获取手机的唯一标示uuid
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
- Android-CallUtil工具类
打电话相关的工具类: public final class CallUtil { /** * 拨打电话(直接拨打电话) * @param phoneNum 电话号码 */ @SuppressLint( ...
- api接口签名相关文章
http://www.cnblogs.com/hnsongbiao/p/5478645.htmlhttp://www.cnblogs.com/codeon/p/5900914.html?from=ti ...
- 理解load averages
今天在客户的生产环境中遇到了网络丢包的问题,但是查看我方部署smokeping监控发现对同一条线路监控,我方监控显示正常,判断丢包是由客户服务器负载过高导致,原因及排查思路如下: 使用uptime ...
- PostgreSQL 用户和权限管理
PostgreSQL 用户和权限管理 创建 CREATE ROLE rolename;CREATE USER username;CREATE USER和CREATE ROLE的区别在于,CREATE ...
- 射线与平面的相交检测(Ray-Plane intersection test)【转】
射线的定义 在欧几里德几何中,射线的定义是:直线上一点和它一旁的部分.由此可知,射线有两个性质,一是只有一个端点,二是一端无限延伸. 射线的参数方程 其中p0是射线的起点, u是射线的方向向量,t & ...
- 拒绝“高冷”词汇!初学C#中实用的泛型!
初学C#,整天对着业务逻辑,写反反复复的“过程型”代码逻辑十分枯燥,不如用点新东西提升一下代码效率,让代码看起来更有逼格?! 好,下面我们看看C#中简单易学的泛型. 首先,我写了一个这样的方法 --- ...