今日头条、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