美团 2020 前端实习生面经

这篇博客详细记录了作者参加美团2020年前端实习生的面试经历,包括笔试和三轮面试的题目内容。笔试涉及了算法和逻辑推理问题,面试涵盖了前端技术、网络、性能优化、Webpack、HTTP协议等方面,同时讨论了浏览器工作原理、状态码、Vue和React的区别以及响应式设计等知识点。面试官对作者的基础知识和实战经验提出了深入的挑战。
摘要由CSDN通过智能技术生成

笔试

双行道

时间限制:C/C++语言 1000MS;其他语言 3000MS

内存限制:C/C++语言 65536KB;其他语言 589824KB

题目描述:
有一个 2*n 的网格,有一个人位于(1,1)的位置,即左上角,他希望从左上角走到右下角,即(2,n)的位置。在每一次,他可以进行三种操作中的一种:

1. 向右走一格,即从(x,y)到(x,y+1);

2. 向上右方走一格,即,如果他在(2,y)的位置可以走到(1,y+1);

3. 向下右方走一格,即,如果他在(1,y)的位置可以走到(2,y+1);

问题当然不会这么简单,在这 2*n 的格子中,有一部分格子上有障碍物,他不能停在障碍物上,当然也不能走出网格,请问他有多少种不同的路线可以到达(2,n)。

输入

输入第一行仅包含一个正整数 n,表示网格的长度。(1<=n<=50)

接下来有 2 行,每行有 n 个字符,“X”代表障碍物,“.”代表可以停留。

输出

如果没有可以到达的路线则输出-1,否则输出方案数量。

样例输入

5
..X.X
XX...

样例输出

2

最好一样

时间限制:C/C++语言 1000MS;其他语言 3000MS

内存限制:C/C++语言 131072KB;其他语言 655360KB

题目描述:
给出一个序列包含 n 个正整数的序列 A,然后给出一个正整数 x,你可以对序列进行任意次操作的,每次操作你可以选择序列中的一个数字,让其与 x 做按位或运算。你的目的是让这个序列中的众数出现的次数最多。

请问众数最多出现多少次。

输入

输入第一行仅包含两个正整数 n 和 x,表示给出的序列的长度和给定的正整数。(1<=n<=100000,1<=x<=1000)

接下来一行有 n 个正整数,即这个序列,中间用空格隔开。(1<=a_i<=1000)

输出

输出仅包含一个正整数,表示众数最多出现的次数。

样例输入

5 2
3 1 3 2 5

样例输出

3

提示

样例解释

例如如果序列中所有数字都不修改时,众数为 3,3 出现的次数为 2,如果我们把两个 3 都做如题操作,序列会变为 1,1,1,2,5,此时众数为 1,出现次数为 3,所以我们选择后者方案,输出众数出现的次数,即 3。

整除的数组

时间限制:C/C++语言 3000MS;其他语言 5000MS

内存限制:C/C++语言 131072KB;其他语言 655360KB

题目描述:
小美曾经有一个特殊的数组,这个数组的长度为 n。但是她在打恐怖游戏的时候被吓得忘记了这个数组长什么样了。不过她还记得这个数组满足一些条件。

首先这个数组的每个数的范围都在 L 和 R 之间。包括端点。

除此之外,这个数组满足数组中的所有元素的和是 k 的倍数。

但是这样的数组太多了,小美想知道有多少个这样的数组。你只需要告诉她在模 1e9+7 意义下的答案就行了。

输入

一行四个整数 n,k,L,R

(1≤n≤1e5 1≤k≤10 1≤L≤R≤1e9)

输出

输出一个数表示满足条件的数组的个数。

样例输入

9 1 1 3

样例输出

19683

物资采购

时间限制:C/C++语言 2000MS;其他语言 4000MS

内存限制:C/C++语言 131072KB;其他语言 655360KB

题目描述:
某公司要建厂投产一种产品,已知该产品共需要 k 种不同的原材料才能生产,而在这个工厂周围有 n 个可供建厂的地址,同时这 n 个位置都生产该产品所需 k 种原材料中的一种,在这 n 个位置间存在一些通行的道路,我们可以视这些道路的长度都为 1,保证这些位置之间两两都是连通的。

很显然工厂面临一个很严峻的问题,就是原料采集,我们定义采集一种原材料的花费为工厂所在位置到最近的一个该材料的采集点的距离,在一个位置建厂的成本为 k 种原材料的采集花费之和。

请你对每一个位置都求出其建厂的花费。

输入

输入第一行有三个正整数 n,m,k,分别代表可供选择的建厂地址数量,编号为从 1 到 n,这些地址之间的道路数量,生产所需的原材料数量,编号为 1 到 k。(1<=n,m,<=50000,1<=k<=100)

输入第二行包含 n 个正整数,第 i 个正整数 a_i 表示第 i 个地址是第 a_i 种原料的采集点。(1<=a_i<=k)

接下来有 m 行,每行有两个正整数 u,v,表示 u 号位置和 v 号位置之间有一条连接的路径,可能存在重边或自环(如样例所示)。

输出

输出包含 n 行,每行一个正整数,第 i 行表示第个位置的建厂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值