⑴ 1.简要概括美团是怎么做业务的2.试分析为什么王兴说线上广告投入 10 块钱,就可以换来别人在线
摘要 美团现在基本上都是靠流量来堆积业务的。
⑵ 要面试算法工程师,大神给点相关经验啊
算法是比较复杂又基础的学科,每个学编程的人都会学习大量的算法。而根据统计,以下这18个问题是面试中最容易遇到的,本文给出了一些基本答案,供算法方向工程师或对此感兴趣的程序员参考。
1)请简单解释算法是什么?
算法是一个定义良好的计算过程,它将一些值作为输入并产生相应的输出值。简单来说,它是将输入转换为输出的一系列计算步骤。
2)解释什么是快速排序算法?
快速排序算法能够快速排序列表或查询。它基于分割交换排序的原则,这种类型的算法占用空间较小,它将待排序列表分为三个主要部分:
·小于Pivot的元素
·枢轴元素Pivot(选定的比较值)
·大于Pivot的元素
3)解释算法的时间复杂度?
算法的时间复杂度表示程序运行完成所需的总时间,它通常用大O表示法来表示。
4)请问用于时间复杂度的符号类型是什么?
用于时间复杂度的符号类型包括:
·Big Oh:它表示小于或等于目标多项式
·Big Omega:它表示大于或等于目标多项式
·Big Theta:它表示与目标多项式相等
·Little Oh:它表示小于目标多项式
·Little Omega:它表示大于目标多项式
5)解释二分法检索如何工作?
在二分法检索中,我们先确定数组的中间位置,然后将要查找的值与数组中间位置的值进行比较,若小于数组中间值,则要查找的值应位于该中间值之前,依此类推,不断缩小查找范围,直至得到最终结果。
6)解释是否可以使用二分法检索链表?
由于随机访问在链表中是不可接受的,所以不可能到达O(1)时间的中间元素。因此,对于链表来说,二分法检索是不可以的(对顺序链表或排序后的链表是可以用的)。
7)解释什么是堆排序?
堆排序可以看成是选择排序的改进,它可以定义为基于比较的排序算法。它将其输入划分为未排序和排序的区域,通过不断消除最小元素并将其移动到排序区域来收缩未排序区域。
8)说明什么是Skip list?
Skip list数据结构化的方法,它允许算法在符号表或字典中搜索、删除和插入元素。在Skip list中,每个元素由一个节点表示。搜索函数返回与key相关的值的内容。插入操作将指定的键与新值相关联,删除操作可删除指定的键。
9)解释插入排序算法的空间复杂度是多少?
插入排序是一种就地排序算法,这意味着它不需要额外的或仅需要少量的存储空间。对于插入排序,它只需要将单个列表元素存储在初始数据的外侧,从而使空间复杂度为O(1)。
10)解释什么是“哈希算法”,它们用于什么?
“哈希算法”是一个哈希函数,它使用任意长度的字符串,并将其减少为唯一的固定长度字符串。它用于密码有效性、消息和数据完整性以及许多其他加密系统。
11)解释如何查找链表是否有循环?
要知道链表是否有循环,我们将采用两个指针的方法。如果保留两个指针,并且在处理两个节点之后增加一个指针,并且在处理每个节点之后,遇到指针指向同一个节点的情况,这只有在链表有循环时才会发生。
12)解释加密算法的工作原理?
加密是将明文转换为称为“密文”的密码格式的过程。要转换文本,算法使用一系列被称为“键”的位来进行计算。密钥越大,创建密文的潜在模式数越多。大多数加密算法使用长度约为64到128位的固定输入块,而有些则使用流方法。
13)列出一些常用的加密算法?
一些常用的加密算法是:
·3-way
·Blowfish
·CAST
·CMEA
·GOST
·DES 和Triple DES
·IDEA
·LOKI等等
14)解释一个算法的最佳情况和最坏情况之间有什么区别?
·最佳情况:算法的最佳情况解释为算法执行最佳的数据排列。例如,我们进行二分法检索,如果目标值位于正在搜索的数据中心,则这就是最佳情况,最佳情况时间复杂度为0。
·最差情况:给定算法的最差输入参考。例如快速排序,如果选择关键值的子列表的最大或最小元素,则会导致最差情况出现,这将导致时间复杂度快速退化到O(n2)。
15)解释什么是基数排序算法?
基数排序又称“桶子法”,是通过比较数字将其分配到不同的“桶里”来排序元素的。它是线性排序算法之一。
16)解释什么是递归算法?
递归算法是一个解决复杂问题的方法,将问题分解成较小的子问题,直到分解的足够小,可以轻松解决问题为止。通常,它涉及一个调用自身的函数。
17)提到递归算法的三个定律是什么?
所有递归算法必须遵循三个规律:
·递归算法必须有一个基点
·递归算法必须有一个趋向基点的状态变化过程
·递归算法必须自我调用
18)解释什么是冒泡排序算法?
冒泡排序算法也称为下沉排序。在这种类型的排序中,要排序的列表的相邻元素之间互相比较。如果它们按顺序排列错误,将交换值并以正确的顺序排列,直到最终结果“浮”出水面。
满意记得采纳哈
⑶ 想问一下美团点评的校招笔试好过吗
咨询记录 · 回答于2021-10-09
⑷ 美团前端面试难吗
美团目前也是在大量的招人啊~~当时参加的是美团打车部门的面试(一年工作经验以上的),部门技术栈vue,后台就是node,一面通过,等了两个小时面试二面,然后通知我回去等消息,一般这样就是挂掉了,毫无疑问。美团是一次性全部面完的。所以去参加最好做好面试四个小时的打算。
先来聊聊一面吧~哈哈
一面
1.简单的自我介绍,与大体的了解我。。。
一面面试官非常不错,先问了下几个项目和用到的技术,会先对我懂的东西做一个大体的了解,比如webpack的单页面的多页面切换,webpack的按需加载,一些webpack的配置有哪些,问了有没有看vue源码,我说了一个vue的watch,大体问了问我框架方面的东西,发现我对框架并不是很熟练,安慰我说没有关系。
2.promise的原理
这个面试官最让人欣赏的就是不会去问你不了解的东西,一开问了我promise,发现我用的并不是很多,就很自然的说没事,换一种方法问你~~~好和蔼啊~
然后就让我用原生js写一个回调函数,其实就是问promise的原理了,js写一个。
3.this指向
这个是面试官手写了一道变态长以及绕的this指向题,可以自行网络js this指向面试题,看几道没有啥问题,需要关注的是其中也考了,argument,和apply(null)。以后想起来再写吧
4.bind与函数柯里化
也就是写个bind,这个红皮书高级函数(22章)有,
可以看下。不过还是得先理解bind的用法,返回一个函数,以及可以传递的参数。参数这里涉及到了函数柯里化。都是手写代码,而且最好写的整洁,因为我有些一笔带过,面试官都让我写完整,明确说要看我写代码水平
5.==, isNaN, typeof
问这个之前先问了我有几种数据类型(七种,下图再加symbol),这里隐形的看你知不知道es6,symbol这个新出的类型。说出了symbol自然会问你这个类型有什么用。
然后就写了好多个typeof,isNaN,==的问输出,这个就是基础题
6.知道什么http请求头?
这个可以说的很多,说了几个,又主动说了下有关跨域请求头,之前项目用的cors,于是和他聊了一会,其实面试就是主动表现自己,把自己知道的都说出来,不然几个请求头说细不细,要问细了能把人问蒙了,最好把话题引到自己知道的地方。
7.问了css
问了css盒子并画出来,清除浮动与bfc,两列布局。
8.说了一大堆其实就是想考我防抖
面试完这个问我想问的问题,我直接问还有二面么?回答有的,又介绍了一会美团打车,说是后台是node,看来要求是前端也要有后台的知识喽。
二面
二面的是我的学长,可是我被问惨了。。。。问的显然比一面深入很多,都问了java
1.自我介绍,问项目
针对项目问了不少,当时有一个支付行为的项目,于是问了很多安全方面的问题,蒙蒙的,完全不知道。第一个就很失败了。然后问了其他的项目,问了websocket。
2.node的EventEmitter用js实现出来
写出来了,但是可以看出来代码写的不规范,学长面试官表示看起来很乱。不过大约算是可以的,指出了几个问题,让我进行修改。(之后完善)
3.虚拟dom
其实vue中就有jsx,react的特点之一有jsx,虚拟dom和代码优化有点关系。
先说下正常对dom的操作,在浏览器中分为渲染引擎和js引擎,现在浏览器内核一般都是渲染引擎(生成渲染树),因为js引擎越来越独立了(所谓的v8引擎?)
然而你在js中获取dom元素的时候你必须要通过渲染引擎,这样两个线程之间的数据交换自然会很慢。所以在前端优化中总是要考虑减少dom操作这一项。包括获取dom元素变量储存起来。
jsx是把dom元素变成了储存在内存中的数据结构。js很快,操作dom也很快。不过也存在缺点,目前的理解就这么点了。
4.路由的实现原理
饿,不知道。。(待会看!)
5.node文件流,java的映射机制(记不太清楚)?
饿。。
6.数组方法map和recer区别?
饿
7.进程与线程的区别
终于有个我会的了,这个显然想问你js的运行机制。先介绍了下进程与线程。
一个浏览器是一个进程,虽然js是单线程的,但是浏览器是多线程的,v8引擎也是多线程的,比如有渲染线程,有处理请求的线程。然后说说任务队列,eventloop。没有理解很深也不敢往下说。
事件循环可以看下这个,链接
8.树遍历
先序,中序,后序。我只知道这么多了,显然想让我写一个的,可是不会。也显然面试官内心已经把我pass掉了,没多问。
9.问了个算法
KMP??反正我不知道。
⑸ 请问面试美团的正常流程是什么
美团面试主要是分为笔试和面试,美团是分批面的,基本是一次性面完总共三面,全都是技术面的。一面没通过,直接说farewell了。前两面没压力,面试官是和颜悦色;到第三面,能明显感觉到差别,基本面无表情,做好心理准备。面试过程:笔试题目,算法程序题多,最后安卓前端题,题目还是不难的,题目在lintcode上刷到过一样的。第一面:随时Be Nice,一个普通员工就可能是你的面试官;首先做自我介绍。面试官对我的经历问了几个问题,然后就是问些很基础,进程和线程的区别;进程间同步方式,。还问到如何编程实现 a^n ,我就说用二分的思想。说到思想,美团蛮注重思想的,第二第三面过程里如果有什么你一下子难实现的,你就讲清楚你是怎么个思路,不要消极对待就好。然后就是随意提问,问到了Java里面的各种语言机制,问到了计算机网络里面的三次四次握手,UDP和TCP区别,get和post区别等等,没有深问。问的很杂很多。
第二面:基本上是没问操作系统和网络的题目,就出算法题,有如何判断一个二叉树是另一棵二叉树的子树;像打印机一样,倒过来打印一棵树,比如一个树是这样的,输出4、5、6、2、3、1,这个就用层次遍历,存储遍历过的节点,在每一层的结尾存储该层的个数……面试官检查验证代码超级仔细,所以面试过程中做题目的时候还是要更加专心一点,不然被他发现错误. 接着,第二个问题,自己写一个Stack类,要实现push、pop操作。
第三面:面试官基本是Boss级别的吧,各种问题啊,兴趣爱好未来规划啥,了解你这个人的性格和美团契合。三面都是技术面,最后还是要写代码
1)实现 char* upcase(const char* src, int len)。
2) 类似6,7,8,1,2,3,4,5 的序列中用二分查找某个数。他还会问问看过的书啊,问几个简单的问题,能答上来就好。基本是工作要求里提到的名着或者就是教材里学到的东西,因为三面的面试官是大佬,是希望能我们能有积极解决问题热情。
前期准备:对美团注重算法早有耳闻,还是很早就开始准备刷题。面试时笔试和面试里都遇到了在lintcode 做过的原题。总之,面美团算法必要刷,难以实现就用逻辑清晰的思路来拯救面试;在技术都OK前提下,面试官看重的更多是优秀逻辑思维能力,善于从复杂系统表象中分析问题,对解决复杂问题充满激情。不要遇到困难有消极情绪!
⑹ 明天去美团复试,会被问到什么问题复试一般都由谁面试,需要注意什么
好吧 作为 资深业务,你需要向上级表达你是一个能吃苦,肯努力的人,美团很多高管来自阿里,讲究的也是狼性。每天的工作就是维护老客户,谈单,陌拜。所以你只要表达出你有很强的冲劲,对吃喝玩乐很熟悉,踏实就没事了。
比较辛苦,收入不菲。上升空间很大。
⑺ 美团公开外卖预估到达时间算法规则,这种算法和逻辑合理吗
其实对我们来说,美团公开外卖预估到达时间算法规则,这些规则是按照最优的路线来计算的。但是在实际的操作过程中这种算法确实会加大外卖员的任务。而且要所谓的算法最优选择,也可能考虑到大多数平均的用时。所以在实际的送单过程中确实会不断的压榨骑手的时间成本,所以这种算法本身来说能够提高到达时间,但是整体上来说会加重外卖员的负担,所以可以从以下几个方面出发来看待是否合理。
其中我们会算法和逻辑本身也会存在一些问题,由于是建立在大数据分析的基础之上,所以对于一些数字模型来说,也确实会存在一些线路的差异。对于普通的外卖员来说也确实需要一定的时间差,但是这种时间如果不断的缩小的话,势必会增加外卖员骑手的成本,所以呀,也会加重负担。
其实对我们来说,美团公开的外卖到达时间,本身也是采取数据分析进行大数据库对比,所以建立的数字模型采取的是最优的方案。但是在实际的过程中也会加大外卖员的实际任务量,而且采取最优的方案也代表着外卖员误差性不断的减小,所以也会增加外卖员的任务量。
⑻ 美团笔试考什么计算机专业
综合技术考试。
综合技术考试的题型有:1、逻辑推理;2、言语理解;3、图形推理;4、图表题。
⑼ 美团面试问问题!
首先根据你的情况初试完了之后都会存在这一过程,面试是双向原则,面试官一般都会看你的全方位,比如表达,思维能力,举手投足,应变能力,穿着打扮等等双方都会进行一个评估
其次一般的通知时间不会超过3天,两天之后没有答复面试成功的可能性就大大降低。按照你的情况可能公司也会有一定的面试期安排,所以你可以先等通知,顺便也可以找其他工作,
最后如果你实在特别想这份工作在两天后还没给你反馈的情况下,谦虚的主动打电话询问面试情况,了解面试具体评判结果,对你以后面试也是有帮助的,公司有时对于主动的人也会区别对待
祝你好运
⑽ 美团数据分析笔试考算法吗
考。
线程,block块,KVO,界面传值等还有一些基础的OC语法的知识,可是都点悲观,就考到了一点关于3种线程的知识。
因此说知识要全面整合,才能达到作题稳而准,平时不注重基础,单纯写一些技术的东西,不注重基础是不能够的。