左程云在牛客网上发帖子说过建议 80% 备战面试的时间放在数据结构和算法上,剩下的 20% 的时间再放在基础知识上。CYC2018 在小专栏里也说过 100 道 LeetCode 会对面试帮助很大。虽然来来回回看了好些遍左程云那个初级算法课程,但是有的地方还是记不牢,准备面试的时间大部分还是花在了阅读和理解知识点上。我觉得还是把重点放回来吧,把左程云算法课程中的题目总结出来,再加上一些 LeetCode 高频题目,争取让自己的题量达到 100 题的标准,然后再去理解知识点,这样备战面试的效果应该会更好。
左程云初级算法课程
- 小和问题
- 逆序对问题
- 随时找到数据流的中位数
- 给一个无序数组,求排序之后相邻两数的最大差值,要求时间复杂度 O(N)
- 用数组结构实现大小固定的队列
- 用数组结构实现大小固定的栈
- 设计一个有 getMin 功能的栈
- 用队列结构实现栈结构
- 用栈结构实现队列结构
- 猫狗队列
- 转圈打印矩阵
- 将正方形矩阵顺时针转动 90°
- “ 之 ” 字形打印矩阵
- 在行列都排好序的矩阵中找指定数
- 打印两个有序链表的公共部分
- 判断一个链表是否为回文结构
- 反转单向链表和双向链表
- 将单向链表按某值划分为左边小、中间相等、右边大的形式
- 复制含有随机指针节点的链表
- 返回单链表入环的第一个节点
- 两个单链表相交的一系列问题
- 分别用递归和非递归方式实现二叉树先序、中序和后序遍历
- 折纸问题
- 在二叉树中找到一个节点的后继节点
- 二叉树的序列化和反序列化
- 判断一棵二叉树是否是平衡二叉树
- 判断一棵二叉树是否是搜索二叉树
- 统计完全二叉树的节点数
- 设计 RandomPool 结构
- 认识布隆过滤器
- 一致性哈希算法的基本原理
- 并查集的实现
- 岛问题
- 前缀树的实现
- 拼接所有字符串产生字典顺序最小的字符串
- 分金条的最小花费
- 做项目的最大收益问题
- 到二维数组右下角的最小路径和
- 奶牛问题
- 图的宽度优先与深度优先遍历
- 图的拓扑排序
- 最小生成树 K 算法和 P 算法
LeetCode
- 反转二叉树
其他
- 二叉树每层值最大的节点