美团-暑期实习二面
职位名称:【转正实习】软件开发工程师-后端方向
面试时间:2024-04-25
面试总长:90min
【自我介绍 】1min30s
实习可以尽快到岗?可以实习多久?
怎么看你会的是C++,要根据工作转java?
了解过后端的工作栈吗?有哪些?
平时的学习习惯?技术栈,判断接下来想学的技术,这些信息去哪里获取?觉得接下来学什么会对自己有帮助?
【项目】8min
询问了项目过程中的挑战,技术实现,是否考虑过安全性,如通信、权限、身份验证、传送数据进行加密等。
【C++】11min
面向对象开发相对面向过程,有哪些新特性使它更高级,或是可扩展性,封装性更好?(糊里糊涂)
C++的多态有哪些实现方式?(讲了静态多态和动态多态)
虚函数的实现?
指针和智能指针的区别在哪里?如何保证的自动释放?(不会,说没看过源码。。。)
引用和指针在使用场景上的区别?(没答上来)你平时指针一般什么时候使用?引用一般什么时候使用?(没答上来)引用相对指针的优点?(提了指针的安全性问题,其他的答不上来了)
有系统学习过设计模式吗?了解过哪些?(只说了工厂模式和单例模式)有了解过设计原则吗?(没有)那为什么会去了解设计模式?
【SQL题】7min
CLASS:id,name
STUDENT:id,class_id,name,age
查询班级人数最多的前十个班级,倒排输出,输出班级名称与人数
(没做出来,讲了思路)
【场景题】34min
抽奖
每一个活动都有活动名称,活动介绍,若干个奖项,中奖概率,以及“谢谢”。还有中奖名单,包含用户名,奖品,中奖时间。每个用户每个活动的次数不同。可以有多个不同的活动,设置不同的奖品与概率与数量。建立表。
(没建清楚,最后没能解决不同的活动有不同的奖项个数的问题)
针对“谢谢”你会有一个奖品表项吗?为啥?(最后说不用了)
【手撕代码】30min
二分查找-II
有一个升序排列的,含重复数字的数组,要求查找到目标值第一次出现的下标并返回,如果不存在返回-1。要求时间复杂度O(logn),空间复杂度O(n)。
(做的磕磕绊绊,15min出第一版,遍历不满足时间复杂度;后来又花了12min通过。)