华为机试题ac了两道,剩下一道算法题忘记咋做了,之前leetcode刷过,在数组中找三个数使其和最接近于目标数,用的是双指针,当时没想出来只写了个暴力,通过测试用例30%,过了几天就收到笔试通过的通知,然后做心理测试,顺利来到一面。
一面面试官人很和蔼,跟我约定的晚上6.半开始视频面试,结果我们两都提前了半小时进入了会议,就直接开始了(哈哈哈哈哈
上来先简单的做了个自我介绍,完了之后开始问问题
1、let和var
var a = 0;
if(true){
console.log(a);
let a = 0;
console.log(a)
}
问这段代码输出什么,我答了会报错,说因为let声明的变量要先声明才能使用,然后后面追问我外面的var不是已经声明了吗,我答的不太清,只答到块级作用域这个点,然后面试官也提示我了,说我答对了百分之七八十,也差不多说到点上了
2、接着问了问promise,以及promise.all,当promise.all里面有的promise变成reject状态会发生什么
3、然后问了vue的双向数据绑定原理,我只回答到了用Object.defineProperties去进行监测数据变化,后面再继续深入的问就回答不上来了(回答道消息订阅模式)
4、接着问了vue的生命周期,有幸这个问题我之前面试有被问到过,把生命周期完整的理解了一遍,记在了脑子里,所以当时回答的很清晰,也没有追问别的问题
5、最后问了一个红黑树,还有设计模式(具体问的是单例模式),不过这两个我复习前端的时候都没有看过,以前上课学的知识都忘记了,就没回答出来
6、接着开始问我的项目,让我演示了一遍我的项目,然后问我认为项目做的最好的点是哪里,做的最不好的地方是哪里,都演示了一遍
7、问完项目之后就给了20分钟开始做一道算法题,具体是leetcode第11题,11.盛水最多的容器 当时刚看到他给的题就知道自己做过,但当时太紧张了,而且第一次来大厂面试,所以思路有了,代码愣是没写完整,到时间之后就简单的跟他说了我的思路,用双指针往中间逼近,重复更新最大值,然后面试官也说我答得七八十了,最后给我写的那个稀烂的代码截了个图,面试就结束了。
最后问了问面试官啥时候会有结果,说十个工作日内
最后给我的整体感觉的话就是,问题会问的很深入,不会只问你表层的东西,然后感觉他们部门可能也会比较看重算法这一方面,因为中途问了个红黑树和单例模式,最后那道算法题没做出来属实不应该,还是有点紧张了,下次放轻松会好一些。拜拜神,希望一面能过
#华为面试#