# 算法

算法是其次,主要是写码能力与熟练度。 作者:文航 链接 来源:知乎

算法虽然在平常工作中接触的可能不多,但是面试还会可能遇到,尤其是一些知名外企如微软、Facebook、Google,因为面试的人都很优秀,所以算法基础、专业技术能力、衍生技术能力都需要,但也并不是绝对。

刷题的话建议大家直接使用VSCode安装Leetcode插件。

以下内容来自极客时间覃超老师算法课内容,只是为了面试可以只刷下面列的重点题。

刷题方式:

五毒神掌

第一遍:不要死磕 要看代码学习(一定要看国际版的高票回答)

第二遍:自己写

第三遍:24小时后

第四遍:一周后

第五遍:面试前

数组 链表

  1. 两数之和
  2. 盛最多水的容器
  3. 移动零
  4. 爬楼梯
  5. 三数之和
  6. 反转链表
  7. 两两交换链表中的节点
  8. 环形链表
  9. 环形链表 II
  10. K 个一组翻转链表 (困难)

栈 队列 优先队列 双端队列

  1. 有效的括号
  2. 最小栈
  3. 柱状图中最大的矩形(困难)
  4. 滑动窗口最大值(困难)
  5. 设计循环双端队列

哈希表 映射 集合

  1. 有效的字母异位词
  2. 字母异位词分组
  3. 两数之和

树 二叉树 二叉搜索树

堆和二叉堆、图

泛型递归、树的递归

分治 回溯

深度优先搜索和广度优先搜索

贪心算法

二分

动态规划

字典树和并查集

高级搜索

红黑树和AVL树

漫画:什么是红黑树?

位运算

布隆过滤器 LRU缓存

LRU 缓存机制

排序算法

高级动态规划

字符串算法

刷题路线

基础

深度优先搜索

回溯

分治

动态规划