美团后端暑期实习笔试

2022.3.5

第一题

给一个带有重复数字的数组,找出最长的不连续的序列的长度(好像是上升的)。

输入:1,2,3,5,6,7

输出:4,最长为【1,3,5,7】

我的思路:签到题,排序一下,然后一个个找即可。

第二题

给一个数组,你可以将其中某一段翻转,然后求连续子数组的最大和。

输入:-1,3,-5,2,-1,3

输出:7(将数组下标1-2的元素翻转,然后求得3+2+-1+3 = 7,另有别的翻转方法)

我的思路:瞎想了半小时,求两个数组,left[i]保存i左边的连续子数组最大和,right[i]保存右边的,然后相加即可。

估计边界有问题,只过了90%。

第三题

切豆腐,豆腐是正方体,边长n,一共切m刀。

每刀对着x、y、z轴之一垂直切,切的轴上的坐标会告诉你。

输出每刀切完后,剩下的豆腐块中最大的豆腐体积。

输入:

2 3

x y z

1 1 1

输出:

4

2

1

我的思路:设两个对角的顶点,每次根据切的边长靠近一个顶点。

自己想的例子倒是能过,但是始终只有18%。

第四题

给一个数组,长度为n,操作m次。

操作为两种,一种是查询一个区间的和,一种是给一个区间加上一个数。

在操作开始前,你可以对数组重排序,求出所有查询和的最大值。

例子想不起来了,反正不会做。

我的思路:第一眼差分?前缀和?但是复杂度好像没有减少。然后还要根据查询次数多的,把最大的数字放到最频繁的区间里。快结束的时候想起来好像是线段树?

附加题

已经来不及了,就看了下题目。

一个小游戏,随机生成一个四位数,你输入一个答案,会告诉你有几个数对了,然后有几个数在里面但是位置不对。

例如:1234 你输入1203,告诉你2个对了,1个在里面但是位置不对

题目要求:给定m次操作,会输入一些数,告诉你返回结果,让你猜测答案是什么。

我的思路:输出一个1000·9999的随机数,然后交卷。


有无大佬教教后面几题。
#实习经验分享##美团##笔经#
全部评论
第三题,他切掉的不会移开。 所以我是记录xyz三个状态,根据三个状态算当前最大块。 纯暴力😂 第四题 感觉就是根据get的区间操作为每个点位赋权重,比如[1,3],就把1_3都权重加一。然后根据权重排序,再把原数组的从大到小放到对应权重位置。 然后模拟计算就好。 差分数组什么都没用,他数据比较小,暴力就a了。 第五题 我是穷举0到10的n次方,判断对应的解能不能通过所有检验规则。能通过就输出。 过了81,最后超时了。
3 回复 分享
发布于 2022-03-05 12:48
第五题这样做不知道是不是很笨😣 #include<iostream> #include<string> #include<ctime> #include<vector> using namespace std; int main() { int l; cin >> l; srand(time(NULL)); int ba = (rand() % (10000 - 1000) + 1000); string b=to_string(ba); string c; for (int m = 0; m < l; m++) { cin >> c; int bb = 0; int dd = 0; vector<int> v; for (int a = 0; a < b.length(); a++) { if (b[a] == c[a]) { bb = bb + 1; } else if (b[a] != c[a]) { v.push_back(a); } } for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { for (vector<int>::iterator its = v.begin(); its != v.end(); its++) { if (b[*it] == c[*(its)] && it != its) { dd = dd + 1; } } } cout << "你对了" << bb << "个数字" << endl; cout << "其中你有" << dd << "在里面但是位置不对" << endl; } cout << "最终数字为" << b << endl; }
1 回复 分享
发布于 2022-03-10 19:44
感谢分享
点赞 回复 分享
发布于 2022-03-05 12:26
第四题 差分+前缀和能做,每次排序一下然后根据query的数量进行
点赞 回复 分享
发布于 2022-03-05 12:32
第二题怎么做?可以说一下思路嘛
点赞 回复 分享
发布于 2022-03-05 12:40
可以,第一题没太看明白
点赞 回复 分享
发布于 2022-03-05 17:14
让我一个前端做二和四就离谱,看来真的是一个后端大佬们一起考
点赞 回复 分享
发布于 2022-03-05 18:22
这个暑期实习在哪里投递的请问
点赞 回复 分享
发布于 2022-03-07 13:23
楼主收到面试通知了嘛
点赞 回复 分享
发布于 2022-03-12 17:27
第五题我做了一下,结果正确,朋友们帮我看一下,欢迎CSDN私信我 链接:https://blog.csdn.net/qq_45915803/article/details/124631462
点赞 回复 分享
发布于 2022-05-07 15:19
暑期实习有选择题填空题吗?
点赞 回复 分享
发布于 2023-03-10 19:15 白俄罗斯

相关推荐

点赞 评论 收藏
分享
评论
15
66
分享

创作者周榜

更多
牛客网
牛客企业服务