最开始面的头条游戏中台,当时是第一次面试,没有经验,导致算法题虽然有思路,但是没有写出最优解,直接挂了。后来又被捞起来,因为此时已有阿里的offer,所以胆子也大起来了,收拾心情开始面头条。

image

头条的面试特点基本就是一个套路:【自我介绍】->【项目介绍】->【手撕算法】->【基础知识】,屡试不爽。

  • 自我介绍:我是xxx,来自xxx,毕业后在xxx几年,期间负责xxx。

  • 项目介绍:xxxxx。项目的时候面试官会问你难点和解决方案,同时会给你提出场景,问你更优化的思路。

  • 手撕算法:多刷题,也可以看看别人面过的算法题,可能会重复。

  • 基础知识:针对简历写的东西问,我被问的较多的是一些中间件,Redis、MySQL、Kafka、Java

注意:文末附带一些我的复习经验及建议,还有多的复习笔记,可以免费下载

一面(技术面:算法+Redis+MySQL+网络)

  1. 给定m个不重复的字符 [a, b, c, d],以及一个长度为n的字符串tbcacbdata,问能否在这个字符串中找到一个长度为m的连续子串,使得这个子串刚好由上面m个字符组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面这个例子,acbd,3。给定m个可能重复的字符[a, b, d, d]呢?

  2. 提供一个整型数组以及一个整数s,如果该数组中存在n个连续元素,且元素相加之和大于等于s,则返回满足该条件的连续元素的最小长度;否则返回0

  3. MySQL集群。假如集群出现延迟怎么处理。

  4. Redis的zset实现延时任务

  5. 设计题:如何设计tiny url

  6. 为什么要四次挥手

  7. HTTPS

  8. ... ...

第二天收到hr小姐姐的电话,约了面试时间

二面(项目+Redis+MySQL+kafka)

  1. 自我介绍

  2. 项目介绍

  3. K Group反转链表。写了栈和迭代两种实现方式,链表的题写起来真痛苦,很容易边界出错。

  4. Redis的持久化机制

  5. MySQL的隔离级别

  6. MySQL索引,聚簇索引和二级索引

  7. Redis高可用方案

  8. 介绍一些Kafka的一些概念

  9. Kafka如何保证消息有序

  10. ...忘了

过了一天又收到hr小姐姐的电话,开心

三面(高并发+MySQL+网络)

  1. 自我介绍

  2. 项目介绍

  3. 第K大的数

  4. 设计题:秒杀系统

  5. MySql的索引优化

  6. HTTPS

  7. ...忘了

hr面

  1. 为啥离职,怎么想的

  2. 介绍项目

  3. 怎么和团队的人沟通,和成员出现冲突时怎么解决。

  4. 期望薪资,你现在的薪资

image

总结头条面经

三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。

在这里关于如何复习我想给大家提点点小意见(如果你对下面我说的这些笔记感兴趣,可以【“点击获取”】即可来免费下载):
图片说明

  • 第一个是算法

关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。

而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本

《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题

image

《算法的乐趣》共有23个章节:

image

image

  • 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)

基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)

image.png

  • 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点

image