今日头条后端开发面经

一二面,基础的技术考察 可能会涉及算法、工程、coding……
三面,除了技术考察还会涉及之前做的项目 重点看候选人的综合素质、技术深度

  1. 写一个线程安全的queue

  2. 两个数组求中位数

  3. 红黑树旋转
    诸如此类的算法可以复习一下。回答出其中两道就行。

  4. 用户权限系统设计

  5. 数据库自增id实现和瓶颈优化

  6. 实现qps控制

  7. 高并发场景资源共享

  8. 分布式锁实现原理

  9. 算法 Search in 2d matrix 2(LeetCode)

第一轮很轻松,技术问题+项目经历+一个手写算法
第二轮,技术问题+两个算法
redis的各种数据结构,用法 线程,进程概念
算法:lru实现 树的遍历 n个数组求top k 得值

在数组中寻找和为指定值的两个数;位图法排序;索引的原理;redis内部存储原理;爬虫url去重(分表);还有java基础,容器类。

人选C++转语言,面试有涉及:一个算法题,几个数据库基础知识,还有一个内存的实现。

人选C#/C++转语言,2个单链表求和,链表顺序是从高位到低位;给你一个数组表示一排楼层的高度,然后下雨了之后会有雨水堆积在这些楼层之间,求雨水面积;简单问了项目;以及数据库相关的知识、redis相关的知识等。

给你一个歌单,你来实现随机播放以及项目经历和一个场景题、大规模并发写入数据库,应该怎样设计架构。

数据结构,链表大数加法,字符串反转实现,innodb索引的实现。

算法题:线程池 get release random O(1)实现
log(k)的时间实现两个有序数组里面找到第k个数
两个数组a/b,用for循环遍历a数组的元素,然后用二分查找,找b数组中这个元素的位置,然后相加等于K 。

你可能感兴趣的:(今日头条后端开发面经)