2020届实习招商银行信用卡笔试题(IT算法方向)python版(同2019春招笔试题)
仅供学习交流用,侵删。 只关注编程题的同学,请点击目录直接跳转。
目录
单选题&多选题节选
编程题1
编程题2
编程题3
问答题(二选一)
单选题节选
有多选和单选,有点恶心的。。不确定答案,仅截图记录了。
编程题1
第一题解答:
a = []
n = int(input())
m = int(input())
for i in range(n):a.append(int(input()))kmin = max(a)for i in range(m):a[a.index(min(a))] += 1print(max(a), kmin + m)
编程题2
先手写了几个情况,从6、7、8、9写了4个,发现推导过程中,蕴含着一个迭代的过程,所以考虑找规律。最终归纳为一个等比数列求和的问题:
n = int(input())if n>=6:print( 2**(n-6)%666666666 )
else:print(0)
然后神奇地发现case100%,通过了。。。
编程题3
此题原型为Codeforces 558C Amr and Chemistry,可网上搜索相关答案。
下面给出2种解答:
第一种case通过率80%:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 11 13:49:13 2019
第三题
试剂x2或者/2,最少几次使得试剂量相等
@author: youxinlin
"""'''
# input
3
4 8 2
# output
2# input
3
3 5 6
# output
5
'''read = lambda: map(int, input().split())
n = int(input())
a = list(read())m = max(a) + 1 #最大剂量+5cnt = [0] * m print('ori cnt = ',cnt)step = [0] * m
print('ori step = ',step)was = [-1] * m #几种档位
print('ori was = ',was)
print(' ')for i in range(n):x = a[i]q = [(x, 0)]st = 0while st < len(q):x, y = q[st] #数值,步数st += 1if x >= m or was[x] == i: #若翻倍后的剂量大于一开始时的【最大剂量】,或,没有更多选择了(即q中之后其他的备选方案中剂量已经是达到过的x了)# 不让最终方案的剂量大于一开始最多剂量的那瓶,减少运算量。因为若选择往上翻倍,必然存在最小公倍数,则无止境。continuewas[x] = i #was的索引表示剂量档位,第i瓶试剂达到了这个档位,则置该档位为该瓶标号i;# 如果没有瓶子达到过某个档位 则该位一直是-1# 所以 was数组记录着情况print('was = ',was) step[x] += y # 某瓶达到x档位所需要的步数。( 不用st,保证是最少的步数!)print('step = ',step) cnt[x] += 1 #计数。某瓶试剂量达到x档位后,这个档位被达到的次数+1。print('cnt = ',cnt)q.append((x * 2, y + 1)) #q存放方案,每次操作都可以乘以2或者除以2。x表示剂量,y表示第几次操作q.append((x // 2, y + 1))print('q =',q)print('\n')result = min(step[x] for x in range(m) if cnt[x] == n) #当 cnt[x]==n,表示x这个档位同时有n瓶达到过,即符合所有瓶子的剂量相等的条件
# 即可以让每瓶的剂量都 等于 x ,从而满足要求
# step[x] 记录着 让每瓶剂量都等于x所需要的最小操作次数
# 再从step[x]中选出最小值 即题目所求最小值
print(result)
这种方案优先选择往下降倍的方案的原因是:假设有两瓶试剂,一开始剂量为a,b。
往上翻倍达到二者剂量最小公倍数需要的操作次数是:
log2(b)+log2(a),if a,b互质
log2(b/a),if b能整除a,即b为最小公倍数
往下除以2达到二者剂量的最大公约数需要的操作次数是:
log2(a)+log2(b),if a,b互质
log2(b/a),if b能整除a,即a是最大公约数
故二者操作次数相等,只需考虑往下降倍的方案,使得穷举方案时可以收敛到剂量为0,在有限步骤内完成。
第二种方案是网上别人作答方案:
#第三题python3:(更快版本)
def main():input()aa = list(map(int, input().split()))le, l = max(aa).bit_length(), []for i, a in enumerate(aa):j = le - a.bit_length()aa[i] = a << jl.append(j)mi, ma = min(aa), max(aa)a = mask = (1 << le) - 1if mi == ma:while mi == mi & a:mask = aa &= a << 1else:while mi != ma:mask &= mask << 1mi >>= 1ma >>= 1while not (mi & 1):mask &= mask << 1mi >>= 1mask ^= (1 << le) - 1le = mask.bit_length() + 1res = [0] * lecache = {}for a, i in zip(aa, l):a &= maskif a:a = a.bit_length()tmp = cache.get((i, a))if tmp is None:cache[i, a] = tmp = [0] * leif a:base, baseidx = a - i, le - a - 1else:base, baseidx = 0, le - i - 1i, j = baseidx, basewhile i:i -= 1j += 1tmp[i] = ji, j = baseidx, basewhile i < le:tmp[i] = ji += 1j += 1for i, j in enumerate(tmp):res[i] += jprint(min(res))if __name__ == '__main__':main()
问答题(二选一)
选答了第二题。
正好最近看了一些稀少目标检测的文献:Schwartz E , Karlinsky L , Shtok J , et al. RepMet: Representative-based metric learning for classification and one-shot object detection[J]. 2018.
这篇文章里很详实地介绍了少量样本训练和分类识别问题的related work,通过阅读相关工作,可以大概了解一下现有的方法。另外,作者也基于DML提出了新的网络模型用于解决这个问题。
用DML来处理稀少样本问题是个不错的途径。推荐一本外文书:Metric Learning: A Survey。
看完大概也能讲出一些东西,这样开放题,言之有理即可吧。
2020届实习招商银行信用卡笔试题(IT算法方向)python版(同2019春招笔试题)相关推荐
- 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘
因本人刚开始写博客,学识经验有限,如有不正之处望读者指正,不胜感激:也望借此平台留下学习笔记以温故而知新.这篇博客是复盘回忆招银网络科技2019春招的笔试试题类型,相关岗位:算法工程师. 简要介绍:时 ...
- 2019春招面试题总结-03
public class B{public static void main(String[] args){int i = 12;System.out.println(i+=i-=i*=i);} } ...
- 海康威视2019年校园招聘内推码(2019届春招、2020届实习/秋招)
官宣拥有内推码的同学,同等条件择优录取,在每一个环节都会更加具有优势 海康威视2019年校园招聘内推码(2019届春招.2020届实习/秋招): 5S3QAI (最好复制内推码,不要写错了,写错了可能 ...
- 意淫系列-2018美图春招笔试题
2018美图春招笔试题 只是试水,没有A类会议拒绝实习. 题不难,陪女朋友吃饭去了,然后就没怎么时间,只是看了下题. 题型:选择题和编程题,选择题25道,涉及数据结构,C,Python,C++,图像, ...
- 中国联通智网创新中心2021春招笔试题
中国联通智网创新中心2021春招笔试题 这个智网中心是2020年5月新建立的,之前没听过.然后这次报名参加了笔试,实际上这是第二次笔试,第一次题很难(对我来说)然后非常惨,考完之后人家将近两个礼拜没通 ...
- 2018年京东春招笔试题
2018年京东春招笔试题(2018.04.09) 题目一 整数分解 题目描述 小Q的数学老师给小Q一个整数N,问小Q能否将W分解为两个整数X和Y相乘,并且满足X为奇数,Y为偶数.即能否找到奇数X和偶数 ...
- 小鹏汽车2019春招自动驾驶中心研发笔试题(部分题解)
小鹏汽车2019春招自动驾驶中心研发笔试题(部分题解) 链接:https://www.nowcoder.com/questionTerminal/ebd81731da404c0f9505c8a933c ...
- 京东2019春招Java开发类笔试题
京东2019春招Java开发类笔试题 1. (单选题) 在对问题的解空间树进行搜索的方法中,一个结点有多次机会成为活结点的是 ( B ) A. 动态规划 B. 回溯法 C. 分支限界法 D. 回溯法和 ...
- 2018年网易游戏春招笔试题
2018年网易游戏春招笔试题(2018.04.16) 题目一 生产线问题 题目描述 作为一条生产线的负责人,你手头上有N个订单,你需要通过这条生产线去处理这些订单.每个订单可以用两个属性去描述:耗时p ...
- 数据、运营相关试题(一)【牛客网:京东2019春招商务与运营类试卷】
试题来源:牛客网 试题答案仅供参考.其中前半部分偏向商务类试题,后半部分偏向运营类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广场] 数 ...
最新文章
- python金融代码_Python2爬虫代码之获取金融品种行情数据
- C语言各种变量的初始化
- 计算机核心配件是什么,计算机的核心是什么
- C++ static 用法
- qt4.7 mysql_详解Qt 4.7编译和访问Mysql驱动
- mysql al32utf8_Oracle 11g更改字符集AL32UTF8为ZHS16GBK
- centos安装python3.4 pip3
- PowerTip of the Day-Finding Invalid Aliases
- CTS(8)---Android Google认证 -CTS认证问题小结
- 1.material组件的安装及其使用
- mac显示网速_Mac系统怎么查看测试网速
- php常用标签,PHP 过滤常用标签的正则表达式
- PTA题---求两个有序序列中位数所体现的思想。
- 关于stm32f407搭载wifi模块_华为智能体脂秤WiFi版体验:家庭标配的智能家居
- IntelliJ IDEA最新版官方支持汉化
- python sendkeys用法_sendkeys用法详解
- 学习记录——微信小程序查询的两种方法
- ubuntu 什么是xinetd
- Docker 搭建Hfish蜜罐平台
- jk触发器改为四进制_数字电路学习笔记(十):更多锁存器和触发器