这是我在刷了1000+道题后总结出的算法面试高频题汇总,目前已拿字节和微软等多家公司offer,希望我的刷题经验能够帮助到大家,千万别只收藏不点赞啊~~~
以下8个面试中最常考的算法与数据结构知识点。
字符串处理 String
考得很多,主要注重代码实现能力,算法上没有太多难点,通常是处理麻烦,最少刷题数20+。
入门:
进阶:
- LintCode 1890 形成最小数
- LintCode 1870 全零子串的数量
- LintCode 1824 最频繁出现的子串
- LintCode 1715 三等分
- LintCode 1592 查找和替换模式
排序算法 Sorting
考得很少,但是经常考察其中的快速排序和归并排序及相关的题,必须背诵这两个。
初级:
进阶:
分享一份从九章算法班拿到的快排模板:

双指针算法 Two Pointers
高频算法之王,变形特别多,算法不算特别难,但能快速想到和写好不容易。
同向双指针:
- LintCode 1886 目标移动
- LintCode 1879 两数之和 VII
- LintCode 1870 全零子串的数量
- LintCode 1824 最频繁出现的子串
- LintCode 1819 最长双交替子串
相向双指针:
二分法 Binary Search
考察频率中等,能写好写对不容易,二分答案的问题甚至很难想到算法,要背模板。
初级:
- LintCode 1476 山形数组的顶峰坐标
- LintCode 1056 请找出大于目标的最小字母
- LintCode 1753 写作业
- LintCode 1669 建庙
- LintCode 1578 A的数量
进阶:
- LintCode 1904 放置小球
- LintCode 1817 分享巧克力
- LintCode 1507 和至少为 K 的最短子数组
- LintCode 1346 地下城游戏
- LintCode 1213 最小良进制基
分治法 Divide&Conquer
考察频率中等,一般和二叉树一起出现和考察,题一般不难。
必刷题:
- LintCode 17 子集
- LintCode 31 数组划分
- LintCode 95 验证二叉查找树
- LintCode 15 全排列
- LintCode 137 克隆图
- LintCode 143 排颜色
- LintCode 138 子数组之和
- LintCode 134 LRU缓存策略
- LintCode 120 单词接龙
- LintCode 107 单词拆分I
宽度优先搜索 BFS
考察频率高,实现一般都不难。
初级:
进阶:
- LintCode 1911 地图分析
- LintCode 1892 扫雷
- LintCode 1888 矩阵中的最短路径
- LintCode 1490 相似度为 K 的字符串
- LintCode 1434 树中距离的总和
深度优先搜索 DFS / 递归 Recursion
考察频率高,主要是考递归会不会写。
- LintCode 17 子集
- LintCode 178 图是否是树
- LintCode 138 子数组之和
- LintCode 425 电话号码的字母组合
- LintCode 90 K数和
- LintCode 652 因式分解
- LintCode 33 N皇后问题
- LintCode 829 子模式II
- LintCode 570 寻找丢失的数II
- LintCode 155 二叉树的最小深度
- LintCode 110 最小路径和
- LintCode 153 数字组合II
- LintCode 52 下一个排列
- LintCode 680 分割字符串
- LintCode 426 恢复IP地址
- LintCode 780 删除无效的括号
- LintCode 802 数独
- LintCode 634 单词矩阵
- LintCode 152 组合
- LintCode 1254 左叶子的和
动态规划 Dynamic Programming
国内大厂基本都考,解题的关键是把不同类型的题都摸一遍,确定状态方程是重点。
背包型动规:
坐标型动规:
- LintCode 1869 统计全为 1 的正方形子矩阵
- LintCode 1861 老鼠跳跃
- LintCode 1850 捡苹果
- LintCode 1707 骑士拨号器
- LintCode 1058 樱桃采集
划分型动规:
- LintCode 1147 工作安排
- LintCode 1118 K个逆序对的数组
- LintCode 1004 最大平均值和的分组
- LintCode 982 等差切片
- LintCode 975 只有2个按键的键盘
区间型动规:
关于动态规划,ACM金牌选手、清华毕业侯卫东老师的动态规划首节免费课可以去听一下,不少人都推荐过,我听下来也感觉不错。
既然看到这里了,收藏的同时顺便给我点个赞呗~