最开始面的头条游戏中台,当时是第一次面试,没有经验,导致算法题虽然有思路,但是没有写出最优解,直接挂了。后来又被捞起来,因为此时已有阿里的offer,所以胆子也大起来了,收拾心情开始面头条。
头条的面试特点基本就是一个套路:【自我介绍】->【项目介绍】->【手撕算法】->【基础知识】,屡试不爽。
自我介绍:我是xxx,来自xxx,毕业后在xxx几年,期间负责xxx。
项目介绍:xxxxx。项目的时候面试官会问你难点和解决方案,同时会给你提出场景,问你更优化的思路。
手撕算法:多刷题,也可以看看别人面过的算法题,可能会重复。
基础知识:针对简历写的东西问,我被问的较多的是一些中间件,Redis、MySQL、Kafka、Java
注意:文末附带一些我的复习经验及建议,还有多的复习笔记,可以免费下载
一面(技术面:算法+Redis+MySQL+网络)
给定m个不重复的字符 [a, b, c, d],以及一个长度为n的字符串tbcacbdata,问能否在这个字符串中找到一个长度为m的连续子串,使得这个子串刚好由上面m个字符组成,顺序无所谓,返回任意满足条件的一个子串的起始位置,未找到返回-1。比如上面这个例子,acbd,3。给定m个可能重复的字符[a, b, d, d]呢?
提供一个整型数组以及一个整数s,如果该数组中存在n个连续元素,且元素相加之和大于等于s,则返回满足该条件的连续元素的最小长度;否则返回0
MySQL集群。假如集群出现延迟怎么处理。
Redis的zset实现延时任务
设计题:如何设计tiny url
为什么要四次挥手
HTTPS
... ...
第二天收到hr小姐姐的电话,约了面试时间
二面(项目+Redis+MySQL+kafka)
自我介绍
项目介绍
K Group反转链表。写了栈和迭代两种实现方式,链表的题写起来真痛苦,很容易边界出错。
Redis的持久化机制
MySQL的隔离级别
MySQL索引,聚簇索引和二级索引
Redis高可用方案
介绍一些Kafka的一些概念
Kafka如何保证消息有序
...忘了
过了一天又收到hr小姐姐的电话,开心
三面(高并发+MySQL+网络)
自我介绍
项目介绍
第K大的数
设计题:秒杀系统
MySql的索引优化
HTTPS
...忘了
hr面
为啥离职,怎么想的
介绍项目
怎么和团队的人沟通,和成员出现冲突时怎么解决。
期望薪资,你现在的薪资
总结头条面经
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
在这里关于如何复习我想给大家提点点小意见(如果你对下面我说的这些笔记感兴趣,可以【“点击获取”】即可来免费下载):
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点