首页 > 美团优选 前端 一面+二面 (凉)
头像
Lostkevin
编辑于 2021-10-11 19:35
+ 关注

美团优选 前端 一面+二面 (凉)

2021.9.17一面 比较懵,第一次这样面,面了1h10min,讲的我都累了不想面了,并且一度怀疑面试官是不是做前端的=_= (感觉讲有的地方毫无反馈,我就开始自顾自吹…… 他就讲到了线程池什么的
开始就推迟了半小时,看面试官那边背景有点乱,本以为会草草结束,结果讲了好久,后来信号实在太差,直接打电话……

1、介绍一下实习的时候那个地图的项目,最大的收获是什么(接API0.0 -> 好了 菜菜本质get 开始问简单的基础问题了)

2、问了在学校学了什么课程,--》 问了两个图start 到end怎么做,说了bfs dfs 优化剪枝

krusral算法和prim算法想不起来了

然后又问,如果是只是求速度快,不那么准确怎么跑。说了模拟退火%%
3、算法 前序遍历(在最后)

4、 问了操作系统中的进程、线程的区别,调度算法(进程是资源分配的最小单位,线程是操作系统调度的最小单位。先来先服务,时间片轮转,优先队列,最短任务优先,最不常使用巴拉巴拉……)
5、问了线程有几种状态。说了就绪态,阻塞态,新建态,这好像是进程的。

答案:硬件态和用户态这种。

6、js里有关线程的操作(js不是单线程的吗15551 我人都傻了,然后我就开始乱扯……浏览器底层是有多个线程的,然后js的事件循环机制是线程如何去处理的,还讲了promise

补:js里web worker是多线程 、 浏览器worker thread

/7、聊到异步发请求,有没有想过他们的底层是怎么实现的(黑人问号脸……)又讲了promise的过程那些

/8、还学过什么课程。因为之前看了篇https大全解…… 所以我特意说了密码学(掌控了面试.jpg) 果然让我说https,然后隔了实在有点久……没讲好但好像因为一直在吹,面试官还挺满意的?

/9、然后继续问,如果后端这里,因为加密算法比较耗时间怎么办。我说现在都是RSA ,对称加密的那个忘记了……(捂脸)

/10、类似promise过程这种,对异步进行的请求,是如何实现的。说了axois、ajaxj,XMLHttpRequest

/11、如果小程序的打开非常的慢,那么会怎么做?

讲了一堆CDN,ssr,压缩,webpack打包,服务器端推送,【预加载preload】

面试官的思路:首先取端点,也就是看哪里的问题,可能是用户的网络慢,可能是解析慢。SSR的话一般只是用于用户客户端的解析速度,对于传输问题治标不治本

/12、如果端到端的传输非常慢,怎么解决?(还是没太搞懂想问什么,顺序忘记了但是上个问题和这个差不多?

最后我问,为什么没有问js css 这种的。他说校招生做的项目都是小打小闹…… 还是看基础…… 就算是用了vue也不清楚双向绑定啥啥啥的。我就说了setprototy,面试官吃惊:竟然了解过,不错(这不是八股文之一吗……为啥感觉他面试的经验还没我的多,泪目)

为什么和我之前看到的面经不一样啊0.0

  • 算法题:左中右遍历 一开始就写了 篇幅问题放在最后。

https://www.nowcoder.com/questionTerminal/04a5560e43e24e9db4595865dc9c63a3 (不是这道题 和这个题目描述差不多)

思路ok,因为会有输入null的问题和面试官一起整了半天,好久没刷题了QAQ

想保存全局变量,不知道咋整,整了全局变量总是报错。提示说可以这样: if(!ans){ ans=new Array();} 嗯哼 确实 避免了多次创建的烦恼 记录下来

/*
 * function TreeNode(x) {
 *   this.val = x;
 *   this.left = null;
 *   this.right = null;
 * }
 */
function preorderTraversal( root, ans ) {
    if(!ans){ ans=new Array();}
    if(root===null)return ans;
    ans.push(root.val);
    //console.log(root.val);
    if(root.left){
        preorderTraversal(root.left,ans);
    }
    if(root.right){
        preorderTraversal(root.right,ans);
    }
    return ans;
    // write code here
}
module.exports = {
    preorderTraversal : preorderTraversal
};

补充:楼下有人讲到非递归的实现方式 ,所以也是去搜了下这道题。
(1)前面讲到处理ans的问题,其实也可以内部再套一层函数:(容易想到)

const res = []
function traverse(root){ 
    ... 内部给res做处理

}
 traverse(root)
 return res;

(2)处理null输入的问题,其实可以直接判断if(xxx===null),不必判断xxx.val 因为首先在分治过程中有判断所以null是不会在后面进入循环的,判断的只是最开始的null问题
(3)非递归的实现:
由于js里没有queue和stack用shift模拟
再来回顾一下
① queue是先进先出,进使用push,出使用shift(第一位左移走1)
(早加入的早出) queue (晚加入的放队尾)
② stack先进后出,进使用unshift放在队头,出使用shift移除队头,顺序上稍作调整,也就达到了“最后加入的放在队头,因此会最先被移走”的效果
(晚加入的早出)stack (由于从头插入,所以早加入的放在队尾)
shift返回被删除的首项
算法实现

var preorderTraversal = function(root) {
    var ans=[];
    function solve(root){
        var array=new Array();
        array.push(root);
        if(root){
            let now_data=array.shift();
            array.push(now_data.val);// 记得是val
            if(now_data.right)array.unshift(now_data.right);// 希望后面再访问right所以让他先进以便后出
            if(now_data.left)array.unshift(now_data.left); 
        }
    }
    solve(root);
    return ans;
}

吐槽:上次刷算法题还是在3月份,能记得就谢天谢地了(果然刷了大半本剑指offer还是有点用的hhh虽然当时用的都是c++,希望不要再forget了!!!(leetcode实在是没兴趣呀剑指offer救我)
进度:已经约了下周四的二面,冲鸭

===============
美团二面面试 2021.9.23
首先自我介绍
面试官很nice,介绍说首先会问基础知识,其次问前端,最后算法题。
然后聊了下,我说基础知识应该没怎么准备好
首先第一个问题是介绍一下os i七层模型。五层也可以,并且具体的介绍一下它们的用处。那么首先是应用层,后面是传输层,网络层,数据链路层物理层。
物理层是 光纤网线这种的层面,数据链路层是数据形式 比如封装 网络层是IP请求
传输层是tcp协议。UDP协议

问题二,这些基本都是第一个问题,下面零零碎碎的往里面挖。哪些协议用的是tcp udp协议?最新的http3用的是吗 最近有没有关注一些前端的新的动向? Ipv4和v6的区别。ipv4多少个呢?现算了一下8*4=32,2^32个,那么单位是什么?
8bit=1byte(这个我说错了!!!!还提示了一下啊啊啊啊啊)
后面KB MB GB TB
为什么要做出改进? 在ip地质这里如何判断local storage?协议加域名加端口号,这个叫什么?其他的那种应用的软件封装起来用的也是https吗?怎样确定一个ca证书是不是伪造的?我说qq应该不是。
HTTP2 SPDIY
HTTP3的标准定下来了吗?哪些页面会用?(只知道谷歌的会用,这还是上一个面试官告诉我的,泪目。。)

问题三,如果同一个网页,打开白屏,用户这样给你说,你怎么解决。
先问了手机型号,排除问题
(1)讲了排查DNS缓存是不是错误,具体如何检验?我也不知道
(2)讲了CDN。知道节点是这样的,面试官继续问CDN的原理是什么?
我试着讲了讲,说不定是第一次请求的时候知道具***置,后面的再去请求,这样也快了不少了
假设设备一样,CDN也没有问题。
提示:手机上的DNS是怎么分配的?你换wifi的时候局域网不同,分配到的DNS也不同.==》渐渐引导到 手机和wifi一样吗。是不一样的啊。所以说可以让用户试试切换网络
(3)可以让用户看console吗?这个其实是不太现实的
在你的手机上,怎么查看自己的ip地址?不知道

面试官产生怀疑:这瓜娃子看着还可以咋啥也不会?然后就问,你最近做的一个项目是啥?前端的新动向了解过吗?。。

问题四,meituan.com下有20万个页面,他们的localstorage已经写满,如果你领导这个项目会怎么解决。
我说了try catch , 看是不是爆掉了
说了清空,set和getItem,清空这里没了解过啊
讲了可以转移sessionstorage,localstorage和IndexedDB, 区别我也不知道 (同步,异步)
osi里,讲了个mac地址。实在不记得了
简单的一个题
闭包 文中开头那一幕
算法题。继续凉,我想换题,没换了,而且就七八分钟了,我也…… 写不出来啊
就是找几个加起来结果为0
稍微优化了一下的暴力算法
【携程笔试【
nums=[-2];
function(arr,target){
var ans=new Array();
for(let i=1;i<arr.length;i++){
if(arr[i]===0)ans.push(arr[i]);
}
for(let i=1;i<arr.length;i++){
for(let j=1;j<arr.length;j++){
if(i==j)continue;
if(arr[i]+arr[j]===0){
var a=new Array();
a.push(arr[i]);
a.push(arr[j]);
ans.push(a);
var b=new Array();
for(let m=1;m<arr.length;m++){

          }
       }
   }
}
 for(let i=1;i<arr.length;i++){
   for(let j=1;j<arr.length;j++){
       for(let k=1;k<arr.length;k++){
           if(i==j||i==k||j==k)continue;
           if(arr[i]+arr[j]+arr[k]===0){
               var a=new Array();
               a.push(arr[i]);
               a.push(arr[j]);
                a.push(arr[k]);
               ans.push(a);
           }
       }
   }
}

}

最后,反问环节。
(1)问了下具体的业务(美团优选),问了下为什么我美团能用,美团优选要升级还要下app。
面试官:保密!这个是出于安全的考虑巴拉巴拉……
我:哦哦,原来是因为安全问题才需要升级,难道是以前的业务有什么漏洞吗
面试官:是因为同行竞争巴拉巴拉……
我:原来不是因为安全问题才这么做,是因为安全问题所以不能说=_=
(2)首先,表示自己虽然确实是科班,但是
1即使学过相关课程,可能当时的老师也只是读 ppt 2 之前说过有非科班转计算机的,他们要是想去学这些原理 直接去学就行了,那么究竟有什么不同呢?
解答说首先,可能工作一两年后,前端会遇到瓶颈期,api会用,但是具体的深层次上就需要花功夫了。之所以是校招和科班,也是去看重这一点。更看好长远的发展前景。非科班当然也可以去学基础知识,但是可能很少会有人有这样的意识,和系统的学过一遍,有体系的还是不一样的。
面试官还说今天面了几个都差不多是像我这样八股背的很熟,但是基础不太了解的。可以理解 在校招季,大家都纷纷准备前端这一块儿的八股,但是忽视了基础,虽然说可以理解,但是总归有些可悲,作为科班来说,其实更应该发挥出这样的优势。(顺便一起diss了下百度hhhh)
然后问我还有什么offer吗(好几个月了,第一个这么问我的人呜呜)
这块感觉确实启发到了,结束的时候还祝面试官工作顺利。许愿一波~


√ 先是去补一个题,(同携程--》 携程还能再投递一次)
其次是,补计算机网络(还是以理解代替的老方法)

  1. 浏览器缓存 之 localStorage
    (1)只有同源才共享!联系起来,端口,域名,协议,还是记得不牢。(这块网络,存储其实也挺重要=》和js无关的基础部分)
    非同源不共享
    那么子域名下面呢?感觉,也不行。所以才会有,子域名下不能跨域的【问题存在】
    作用域 遵循同源策略 (不同端口,不同协议,不同域名,主域相同子域不同,域名和域名对应 ip,都不可以通信),同源窗口共享
    (2)json保存,需要转换
    (3)操作方法
    1 setItem 2 getItem 3 removeItem 删除某个 4 clear清楚所有的!
    5 key(xxx) 6 length
    (4)域名和域名对应ip不允许跨域
    所以说首先localStorage需要跨域,常用postMessage(直接h5 的api )
    同一浏览器同源共享【同源才共享,不同页面不共享,一个pc一浏览器下也不行】
    (5)溢出怎么办?

牛客博客:dfs补题
之前遇到过一次,携程笔试中的没有及时补~
实际上,这种状态的遍历for循环解决不了就用递归,例如1 2 3 4 那么
这次的题目是,比如[-3 2 1 0 -2 -1] 谁加起来等于0 输出。
写到文档里了。

更新10.11:已凉,二面面试官看上去不太想面的亚子,我觉得如果我算法写出来就放我过了,当时明知道直接会凉,应该坚持换个题。凑合写了个暴力的样子……

更多模拟面试

全部评论

(1) 回帖
加载中...
话题 回帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

热门推荐