美团后端暑期实习笔试

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 白俄罗斯

相关推荐

11-14 23:37
已编辑
华南理工大学 C++
#高情商面试官评选#&nbsp;百度一面面试官:虽然因为技术栈不匹配一面就挂了,但是人非常好,很有耐心,当时是应该是我第一次还是第二次面试,很紧张,他给了我很多建议,得知我秋招刚开始之后,又告诉我得好好准备准备。Minimax的一面和二面面试官:全程真的很礼貌,在我回答问题的时候会频频点头表示肯定,你能感受到对方是尽量在保持平等的关系跟你对谈,用的词都是我们先“讨论”一下这个项目,而不是我“问”你几个问题。最差:字节面试官。机械式地问八股,无论答得怎么样没有一点反馈,表情阴沉,完全看不出来任何招人的感觉,项目介绍完没有问任何问题,编程题写完就结束了也没有追问。面完秒挂。更新。最好的面试官+1:TME二面面试官,这不是面试官,是我的理想导师,真的我都怀疑自己是不是在面试了,我答不上来他会循循善诱,给我讲应该怎么做。原来我们是真的能在面试中学到知识的。最后我直言答得不好,他还安慰我已经做得很棒了。反问的时候给我耐心讲了要学习哪些组件,以及每个组件应该学习到哪种程度。最后竟然还说感谢“您”的时间。第二次更新:最好的面试官+1,oppo一面面试官。面试三十多场第一次见到女面试官,之前牛客都说见到女面试官就完蛋了,不过我运气不错。面试官人真的很好,全程和蔼可亲,保持微笑,然后称呼都是“您”,尤其是反问环节,真的讲解的事无巨细,还向我推荐应该读的书。
OfferDaole:我昨天面试货拉拉也遇到了一个非常好的面试官,专业知识,综合素养都非常高。上来先介绍今天面试的流程,分三个部分,说我们分别对这三个部分进行一个讨论。注意!用的是讨论,我都震惊了。然后全程没有问八股,结合面试官提供的代码分析代码的不足,如何修改。在我回答的过程中他没有打断过,在我对有些问题思考时间过长的时候他没有催促我,在我回答的点比较分散时他会帮我总结。全程非常耐心,并且会引导我往哪方面去思考!真的是我的理想导师了
点赞 评论 收藏
分享
评论
15
66
分享
牛客网
牛客企业服务