2020.8.11贝壳找房笔试复盘
目录
- 最大公约数
- 取模方程
- 走迷宫
- 听曲子
最大公约数
给定一组正整数,问最少删除几个数,能保证剩下的数(数目大于1)的最大公约数为1。
- 输入描述
N,数组的长度,大于1
a1 a2 a3 … aN,数组元素 - 输出描述
最少删除元素的个数 - 示例
3
2 2 4
-1
2
1 2
0
解释:[2,2,4]不可能通过删除元素来使得最大公约数为1,所以输出-1;[1,2]本身最大公约数就为1,所以输出0。
数学题,要能分析出一组正整数的最大公约数(GCD)要么为1,要么不为1;不为1的一组数不论怎么样删除,数组元素的GCD都不可能为1。即解题思路就是判断这组数的GCD是否为1,时间复杂度为O(N),N是数组长度。
def gcd(a, b):while b != 0:t = a % ba = bb = treturn aif __name__ == "__main__":N = int(sys.stdin.readline().strip())line = sys.stdin.readline().strip()# 把每一行的数字分隔后转化成int列表datas = list(map(int, line.split()))a = datas[0]for i in range(1, N):b = datas[i]a = gcd(a, b)if a == 1:breakif a == 1:print(0)else:print(-1)
取模方程
给定两个非负整数a和b,问有多少个非负整数x,使a%x=b。
a和b属于[0,10910^9109]
- 输入描述
a b - 输出描述
x的个数 - 示例
7 3
1
15 15
inf
解释:7 mod 4 = 3,x只有4这个取值满足要求,所以输出1;x取大于15的数都满足要求,所以有无数个,输出inf。
数学题。根据题意分类讨论可以得到下面的结论:1.当a==b,输出inf;2.当b>a,输出0;当a>b,符合要求的x属于(b,a-b],且是a-b的因子。
if __name__ == "__main__":line = sys.stdin.readline().strip()# 把每一行的数字分隔后转化成int列表values = list(map(int, line.split()))a, b = values[0], values[-1]if a == b:print("inf")elif b > a:print(0)else:max_x = a-bcount = 0factor1 = 1while factor1**2 <= max_x:factor2, remainder = divmod(max_x, factor1)if remainder == 0:if factor1 > b:count += 1if factor2 > b and factor2 != factor1:count += 1factor1 += 1print(count)
走迷宫
有一个N*M大小的迷宫,每一个格子用’.‘或’#‘表示,其中’.‘代表可通行的、’#‘表示是墙,现在问任选一对起始点(起点与终点不能选同一个格子,并且不能选’#’),它们之间的路径长度指的是最短的那条路径。问这些起始点对中最长的路径长度是多少?
- 输入描述
N M,N是迷宫的长度,M是迷宫的宽度
接下来是N行,M列的格子 - 输出描述
最长的路径长度 - 示例
3 3
. . .
. # .
. . .
4
5 5
. . . # .
. . . # .
. # . . .
# . . . .
. # . . #
8
5 5
# . . # .
. . . # .
. . . . .
# . # . .
. . . . #
8
解释:这三个迷宫,都是对角的点对的路径长度是最大的。
图论,遍历整个图,每次遍历从每个起点开始BFS,得到这个起点所能到达的最远终点,返回其路径。整个遍历完,得到最大路径。
def bfs(i, j):from collections import dequedirections = {(-1, 0), (1, 0), (0, -1), (0, 1)}visited = set()q = deque()q.append((i, j))visited.add((i, j))path = -1while q:path += 1num = len(q)for k in range(num):x, y = q.popleft()for direction in directions:adj_x, adj_y = x+direction[0], y+direction[-1]if 0 <= adj_x < N and 0 <= adj_y < M and graph[adj_x][adj_y] == '.' and (adj_x, adj_y) not in visited:q.append((adj_x, adj_y))visited.add((adj_x, adj_y))return pathif __name__ == "__main__":line = sys.stdin.readline().strip()values = list(map(int, line.split()))N, M = values[0], values[-1]graph = []for i in range(N):data = sys.stdin.readline().strip().split()graph.append(data)res = 0for i in range(N):for j in range(M):if graph[i][j] == '.':max_path = bfs(i, j)res = max(res, max_path)print(res)
听曲子
4名室友听歌,每个人有自己的n首歌可选,每首歌有其播放时间。每个人从自己的n首歌中选歌,至少选一首,最多N首,问4个人中的最长的播放总长与最短的播放总长相差最小是多少?
- 输入描述
N,曲子数
接下来4行N列 - 输出描述
最小的最长的播放总长与最短的播放总长的差 - 示例
3
240 300 360
600 200 200
300 400 500
600 600 600
100
解释:所选方案为240+360/600/500/600,所以输出为600-500=100
暴力解法就是列出每个人的可选方案,然后计算出结果,这样的时间复杂度为O(4∗2n)O(4*2^n)O(4∗2n),加上剪枝,可以过。。。
def gen_solution(data, tmp, idx):solution.add(tmp)if idx < len(data):gen_solution(data, tmp+data[idx], idx+1)gen_solution(data, tmp, idx+1)if __name__ == "__main__":N = int(sys.stdin.readline().strip())solutions = []for i in range(4):line = sys.stdin.readline()data = list(map(int, line.split()))solution = set()gen_solution(data, 0, 0)solution.remove(0)solutions.append(solution)res = sys.maxsizefor i0 in solutions[0]:for i1 in solutions[1]:if abs(i0-i1) >= res:continuefor i2 in solutions[2]:if abs(i0-i2) >= res or abs(i1-i2) >= res:continuefor i3 in solutions[3]:res = min(res, max(i0, i1, i2, i3)-min(i0, i1, i2, i3))print(res)
2020.8.11贝壳找房笔试复盘相关推荐
- 一枚渣渣的贝壳找房笔试惨痛经历
选择题 1.平衡二叉树 2.取字串 3.哈希表的平均查找长度 4.Dijkstra算法和Prim算法是什么,空间复杂度和时间复杂度 5.磁道,SCAN算法 6.MySQL存储的优点 7.delete ...
- 互联网日报 | 贝壳找房更新IPO招股书;云闪付App用户数突破3亿;宝马近11年来首次季度亏损...
今日看点 ✦ 贝壳找房更新招股书:将IPO发行价格区间设定为17-19美元 ✦ 支付宝:已联合商家.银行发消费券超100亿,小店流水增长70% ✦ 银联云闪付APP用户数突破3亿,20多家银行400余 ...
- 互联网晚报 | 05月11日 星期三 | 贝壳找房启动新一轮裁员;苹果宣布停产iPod touch;朴新教育否认“宣布破产”...
知网称正在反思,将择机向社会公开整改措施 5月9日,同方股份针对投资者留言回应称:知网在进行反思,并研究进行经营模式优化改善,积极进行整改.知网会将相关整改措施择机向社会公开.同方知网(北京)技术有限 ...
- 贝壳找房的2021,依然充满变数
配图来自Canva可画 2021年的贝壳找房充满变数,先是被指垄断,而后又失去了精神支柱一般的创始人左晖.在接二连三的打击中,贝壳发布了2021年上半年及第二季度财报,毫不意外贝壳找房业绩整体表现差强 ...
- 贝壳找房上海研发全员被优化,公司回应来了!
整理 | 王晓曼 出品 | 程序人生 (ID:coder _life) 10月11日,不少网友在某社交平台上爆料称,贝壳找房上海研发全员被优化,裁员补偿为"N+3". 贝壳找房回应 ...
- Python爬虫 | 爬取贝壳找房8万+二手房源,看看普通人在北京买房是有多难!
文章目录 1.概述 2.数据采集 3.数据清洗 3.1.读取数据 3.2.去掉车位(地下室)数据 3.3.房源信息解析 4.数据处理及可视化 4.1.各地区二手房源数 4.2.各地区二手房均价 4.3 ...
- 贝壳找房值百亿美元吗?
来源:燃财经(ID:rancaijing) | 作者:唐亚华 数据猿官网 | www.datayuan.cn 今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博 ...
- 安居客冲刺上市:姚劲波全力支持,距离贝壳找房还差6个我爱我家
4月8日,港交所披露的文件显示,安居客集团(下称安居客)向港交所主板递交上市申请.在此之前,我爱我家.房天下(搜房网).贝壳找房(链家)均已实现上市,而麦田房产暂无动作. 据了解,安居客成立于2007 ...
- 现代汽车、欧莱雅、贝壳找房、信达生物、诺维信等公司高管变动
一周企业高管变动要闻. 全球 韩国现代汽车集团(Hyundai Motor Group)首席副会长郑义宣14日升任集团新一任会长,作为现代集团的第三代继承人正式接班.这是现代汽车集团时隔20年正式换帅 ...
最新文章
- 2020年总结以及21年规划
- 嵌入式处理器分类现状
- python元组 字符串 字典 习题+总结
- css怎么居中字体,用CSS做将如何字体居中?
- 计算机不能代替人类英语作文,2013年雅思写作范文:电脑翻译能取代人吗?
- android hook 模拟点击_手把手讲解 Android Hook-实现无清单启动Activity
- 帝国cms+php7.0+mysql_帝国cms切换php7.x登录后台空白解决方法
- redhat5.4上安装oracle9i
- STM32固件库下载教程
- Java 实现同步的几种方式
- 山东大学高频电子线路综合实验 调幅通信机系统实验详解
- jq ui.dialog.js简介
- 二叉排序树和二叉平衡树
- 获取pm2.5空气质量AQI历史数据
- DevOps原则,听伍道长细细道来
- win10下Linux双系统
- 利用matlab来设计FIR滤波器参数
- get_post X老师告诉小宁同学HTTP通常使用两种请求方法,你知道是哪两种吗?
- 搭建Linux内核代码浏览工具LXR
- Android 高仿微信朋友圈动态, 支持双击手势放大并滑动查看图片。
热门文章
- oracle 查看PACKAGE里的函数代码
- python群发邮件 to单独指定_python:如何发送邮件与TO,CC和BCC?
- iframe如何刷新的三种实现方案
- 英语语法最终珍藏版笔记-2关于动词时态的几点说明
- 网络基础(三)物理层功能,Hub的工作原理
- 计算机组成流水灯原理,计算机组成原理课程设计(微程序设计)
- HTML XHTML CS3 JS网页制作(IT培训网站设计+当当网首页设计)
- 5G——万物互联新时代
- 大数据在各个行业中的具体作用
- 2021年全球切削刀具市场销售额达到了244.5亿美元,预计2028年将达到321亿美元