一面
一面问的都是一些比较基础的东西,问了一点项目问题,没什么好说的,因为非常简单,所以面试完之后十来分钟就打电话约了2面
二面
1. vue的双向绑定原理? (说完之后问我是怎么学习的源码)
2. node了解吗?因为我用的是express所以问了我express的中间件原理(再一次问我怎么学习的源码)
3. 实现一个promise.race的api
4. 大数相加的算法题;
5. 一个二维数组 [ [x, y], [z, k], [t, i] ],输出从左到右的排列组合方式,该用例的输出结果为:[xzt, xzi, xkt, xki, yzt, yzi, ykt, yki]
二面本以为挂了,因为由于第一次别人看着我写代码,脑子里面根本没有想逻辑,结果写的输出结果千奇百怪,结果就是没有在给定时间内做出来,事后发现每个代码只要再改两三个地方就可以ac了,不过还好面试官给我过了,可能是源码部分说的还不错吧。
二面完是过了5分钟左右就约了3面。
三面
三面有点奇怪,项目也没问,就问了三样东西;
1. 给定一个二维数组,输出斜项打印结果。
/** * [1, 2, 3] * [4, 5, 6] * [7, 8, 9] * * 输出:124357689 */我虽然写出来了,但是面试官问我有没有什么问题,我没找出来,就直接下一问题了。
2. 职业规划;
3. 这个题我没想明白面试官想考察我什么能力,还请牛友分析一下。
有一副牌,牌面的数字为1~5,并且摆放的顺序从上到下是 1,2,3,4,5。下面反复进行下面这个操作,每一次取出最上面一张牌,展示出数字,不放回,然后把剩下牌中的最上面一张放到最下面,直到牌拿完位置。
如:
如果刚开始的顺序是12345
第一次取:1 3452
第二次取:13 524
第三次取:135 42
第四次取:1354 2
第五次取:13542 空
---------------------------------------
注意:该题不是写代码,然后面试官让我写出来如果是123456和1234567的情况,写完之后,问题来了。问:如果我告诉你最后输出的结果是12345,那么我刚开始摆放的顺序是怎样的,说思路;然后又说如果结果是123456的话摆放的顺序又是如何?
我的思路:我就拿结果为123456来说明一下,首先123这三个位置是肯定可以直接确定的,也就是 [ 1, x , 2, y , 3, z ] 这样。也就是判断456的位置,就拿xyz来举例,当3被取出去之后,xyz的相对位置肯定是不变的,因为取出1的时候x变到了最后,xyz的相对位置为 yzx,取出2的时候相对位置为 zxy,所以取出3的时候xyz的相对位置肯定还是xyz。也就是456要怎么处理才能得到xyz了,首先取出的是x,由于结果第一个是4,肯定x就是4了;由于取出x之后,y要被放到最后去了,所以z肯定就是5了,y就是6了。我大概就是这么跟面试官讲的。
到现在为止还没有电话联系我,应该是已经凉了。
---------------------------
之前思路这里面 [1, x, 2, y, 3, z] 这里写错了,现在已经纠正。
全部评论
(4) 回帖