美文网首页
2018字节跳动 后端开发实习(深圳)一面记录

2018字节跳动 后端开发实习(深圳)一面记录

作者: YoungWilliam | 来源:发表于2018-12-16 02:04 被阅读0次

    面试完整个人都不好了,虽然很菜,当想记录下来,激励自己成长。

    1. 二叉树找最长路径
      给定一颗二叉树,求其中的最长路径。所谓路径是指,联通两个结点的最小边数. 如下图:最长路径是6


    用代码实现,没写出来。连树的前序遍历/中序遍历/后序遍历/层次遍历都忘了,还是面试官提醒才想起来。

    1. SQL index 索引怎么实现,怎么用
      没答出来,直接忘记。

    2. 用 两个 栈 实现 链表
      用了一个比较愚蠢的办法,面试官说太绕了,我感觉是我表述不清楚。

    3. 两个链表有一个交点,如何在时间复杂度 O(n) 和 空间复杂度 O(1) 的条件下实现?
      答不出来。。。
      只实现了一个巨简单但空间复杂度 O(n^2) 的 。

    4. 进程之间怎么通信?
      只答出来socket。

    5. 进程与线程之间的区别
      进程包含线程,其他答不出来了。

    我把自己项目 南科通 小程序介绍了一下:

    1. 面试官就针对这个问了下 HTTP, get post,502代表什么?
      没回答出来。。。

    2. 还问了 TCP 协议,如何保证数据完整?
      我回答了 ACK 但忘记了 checksum,还好面试官提醒了一下想了起来。

    3. 最后没啥可问了,就问了脑筋急转弯:
      5个海盗要分100块金币,分配的协议是:按顺序一个一个来,轮到当前的海盗,他提出一个分配方案,如果包括他在内至少有50%的人同意,那么方案通过,否则这个海盗就会被喂鲨鱼,下一个海盗继续提出分配方案。 假设海盗都是纯理性而且冷血的,他们的第一原则是生存,第二原则就是拿到尽可能多的金子,第三原则是如果给的金币一样,他们倾向于选择有更少的海盗的分配方案。

    问:第一个海盗怎么分配金币?

    还好当时同学考过我一个类似的问题,想了想,面试官再提醒一下就回答出来了。
    主要是逆向思考,从最后一个开始想。
    答案:
    1个人:100
    2个人:100,0
    3个人:99,0,1
    4个人:99,0,1,0
    5个人:98,0,1,0,1

    即一开始的海盗给自己分配 98 个金币,第二个分配 0,第三个分配 1, 第四个,就是倒数第二个分配 0,最后一个分配 1。

    总结

    从晚上 8 点 45 一直面试到 10 点多一点,一直到我电脑快没电才结束(感觉面试官还想多问问),考的都是非常基础的计算机知识。面试官很友善,但是在我写不出代码的时候显得很无奈,就是因为基础太弱,要想找工作还是的好好学好基础啊。

    相关文章

      网友评论

          本文标题:2018字节跳动 后端开发实习(深圳)一面记录

          本文链接:https://www.haomeiwen.com/subject/ssazhqtx.html