今日头条、Face++开发岗面经

【头条】

  • 两个栈实现一个队列、怎么优化
  • 数组每一个元素找出数组右边第一个大于自己的数
  • 实现LRU
  • TCP四次握手
  • 滑动窗口、窗口大小
  • 线程与进程区别
  • 什么是线程安全
  • 乐观锁、悲观锁
  • 进程间通信
  • 管道怎么实现
  • 左连接、右连接
  • 索引、主键的区别
  • 给定n个数,将1,2...n按字典序排列,求第k大的数
  • 求两个有序数组前K大的数
  • 拓展:求m个有序数组前K大的数
  • 设计一个带有有效时间TTL的KV存储系统,包含set(key,value,ttl)、get(key)方法、怎么优化
  • 循环有序数组的二分查找

【Face++】

  • 2sum
  • 能够获取最大值的栈
  • 拓展:如果是队列怎么实现
  • 已知长、宽的桌子,四角有洞,从一角以45°发射弹球,弹球一定会落入洞中吗?若一定,求弹球运行时间
  • TCP三次握手、四次挥手
  • 消除代码中的注释 /* …… */ //……
  • 简化路径 path = "/home/", => "/home" path = "/a/../b/../../c/", => "/c"
  • 系统调用、一般的函数调用的区别
  • 内核态、用户态区别
  • 汇编角度C++函数调用的过程
  • 链表排序,要求时间复杂度小于O(N^2),空间O(1),不允许改变链表的值

参考链接:https://www.nowcoder.com/discuss/37316?type=2&order=0&pos=138&page=1

05-08 15:25