WYHL 后端工程师面试总结

时间:2022-09-05 12:03:36
一、WYHL公司面试总结

 

  • 过程:
    BOSS上投递了简历,后来hr联系后简短了解后。技术官电话面了解了下
     
    一个周后,hr联系到公司面试。

  • 时间2018.11.22 早上10:00 (因为公交迟到了几分钟) 以后注意出发时间

  • 第一个面试官大概是海归吧!形象气质风度感觉非常好,感觉比较 有深度
    问的问题也全都是算法的
     
    总结问到的算法:快排、归并、堆排、以及他们的时间复杂度。
    说出时间复杂度o(1)的数据结构:哈希表,实际复杂度-->遍历生成hash表n+1一次定位
     
    给出一个数组arr,和一个参数b,要求设计算法找出数组里面唯一的两个数相加得b。返回这两个数。
    这个问题本身我自己比较熟悉,领扣上也刷到过,平时也看到过,当时突然就不会了,所以设计了一个n*n的算法
    我的答案:遍历arr,使用参数b减去这个数,然后判断哪个值是否在arr中
    面试官让给出一个时间复杂度为n算法:我当时的想法是。。。。不说了,比较复杂
     
    然后面试官说如果给出的是个排好序的arr,那么设计一个复杂度为n的算法:
    提示是:两个指针 i , j 一个指向索引0,一个指向-1,然后让两个数相加和b比较
    答案很明显了:大就 j 往左移动,小就 i 往右移动
     
    接着还是算法:一个二维数组mxn,
    [
        [1, 3, 2],
        [4, 2, 5],
        [3,6, 1],
      ]
    从0,0位置走到到-1,-1,把走过的路上的数全部加起来,结果最小的一条路径
    这个比较难:我第一反应是深度优先的遍历方式,每个节点往左往右都计算比较大小,找到比较小的一条路径,最后算法只写了一半面试官给我换了一个题。
    这个题最后问面试官答案为:两种
     
    最后一个算法题:一个数组,里面有负数如:[-2, 1, 4, -1, 1, 2, -2, -1, 1, 2, -2, 1]。然后找出连续加起来最大的几个数
    面试官给出的提示,我是一直存疑的,现在也是,等下去搞清楚。
    提示:从第一个数开始往后累加,如果小于0就放弃,并把结果保存到一个数组中。最后比较数组中的结果大小
    (我个人疑问就如同我给出的列子,最后两个数,加-2大于0不舍弃,但是再加1,就比原来小了1,所以算法需要优化下)
    最后通过提示实现的算法:先定义一个数组存每次相加的答案,从索引0开始,小于0放弃,从新赋值为下一个数组元素。最后比较返回数组中最大的数

 

1.1.2 后端面试官

  • 第二个面试官是个腼腆的大男孩感觉。
    主要问题有:restframework 模块,数据库操作

  • restful本来我知道很多很多,可惜当时被第一个算法面试搞懵逼了,这一面我就回答了源码,和一个django请求到restframework的流程,里面的一些源码方法等
  • 数据库操作,面试官问了一两个orm应用操作函数,这个吗!太简单了。

  • 我个人更希望问数据库底层,原理。数据结构b+数,引擎、索引、事务、redo、undo、mvcc等。所以我不应该等着面试官问。应该自己找机会表现自己知道的
    总之个人很不满意,会的很多东西没能展现

后面就是说了些公司情况,环境,然后让我等ceo开会完,见一见聊一聊。最后因为ceo比较忙没时间就让我走了。
整个过程比较轻松吧!就是自己没发挥好比较懊恼