文章目录
前言第一题 The War第二题 Archer第三题 Need for Speed前言
(1)微软暑期实习生招聘笔试题于/3/25 晚上7点到9点之间考试,考试时长90分钟,三道编程题,纯英文。
(2)使用的平台是mettl,整体和leetcode风格类似,会给出方法和形参。基本主流语言都涵盖。
(3)只可以使用一台电脑(会检测有没有连接第二屏),需要检测摄像头和麦克风。
(4)使用火狐浏览器或者谷歌浏览器(谷歌浏览器需要科学上网下载一个mettl共享屏幕的插件)。
(5)验证身份的时候需要IDCard拍照。
第一题 The War
Xavier与Magneto的战斗达到了最后的高潮。战争地点已在X个地方建立。 Xavier有N个将为他而战的突变体,每个都有一些力量值。由于战争将在X个地点进行,因此他必须组成X队,每队在1个地点作战。每个团队都有K个突变体,其中K = N / X。他被要求选择将为他而战的特殊队伍。现在,他知道Magneto的军队非常强大,因此他决定,他的每支军队都应包含不同力量值的突变体。
现在,每支军队都有一个不兼容分数,该分数等于突变体的最大和最小力量值之差。他希望这个分数最小。您需要帮助他将N个突变体分成X个团队,以便每个团队包含K个具有不同能力的突变体,并返回整个部队的最小不相容分数。
输入:
input1:N,突变体总数。
input2:K,应该属于一个部队的突变体数量。
input3:代表突变体得分的一维数组
输出:
返回遵循以上2个约束条件而形成的整个部队的最小不兼容分数(所有团队的非1兼容分数之和)。 如果无法组建团队,则返回-1。
第二题 Archer
Ralph是一位出色的射手,总是赢得射箭比赛的冠军。 这次,为了挑战他,法官们提出了一种新的挑战。
连续放置N个瓶子,每个瓶子都有一个特定的编号。 Ralph必须以一种非常有趣的方式瞄准并击中瓶子。 开一枪,Ralph可以移走1个或1个以上的瓶子,如果这些瓶子序列上出现的数字形成回文。 同样,这些瓶子必须一个接一个地出现。 射击后,将剩余的瓶子移开,以便所有瓶子再次排成一列,拉尔夫再次射击瓶子。
现在,如果拉尔夫每次射门得到1分。 找到拉尔夫可以得分的最低分数。
输入:
inputl:瓶数N。
input2:代表写在瓶上的数字的数组,A [i]代表第i个瓶的数字。
输出:Ralph可以得分的最低分数。
第三题 Need for Speed
您正在参加没有规则的非法赛车比赛。第一个到达最终排名的玩家将赢得$ 100K。有多条道路穿过不同的城市。一些城市可能包含硝化剂,沙土,坠机地点或警察。
从一个城市到另一个城市的时间是1小时。硝基助推器可将您在2个城市的速度提高2倍。沙土会使您在2个城市的速度减半。崩溃站点是那些经常发生崩溃的城市,因此,安全驶出崩溃站点需要1个小时。如果您在任何城市遇到警车,都会被炸开并自动迷路。
给定城市的数量以及城市之间的道路。找出需要最少时间的最佳路径。城市的名称从0到N-1,其中N是城市数。城市0始终是起始城市,城市N-1始终是最终目的地。
注意:每个城市的速度计算将以当前速度而不是初始速度进行。
输入:
inputl:城市数。
input2:表示与城市关联的特殊权力的数组[“ Nitro”,“ Sand”,“ Crash”,“ Cop”,“ None”],其中ith元素是第i个城市中存在的权力。
输出:
您的函数必须以{cl,c2,cn}的形式返回路径,其中cl,c2,…,cn是汽车将依次经过的城市。 如果没有可能的路径,则返回{-1}。