# 算法

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

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

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

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

刷题方式:

五毒神掌

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

第二遍:自己写

第三遍:24小时后

第四遍:一周后

第五遍:面试前

数组 链表

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

栈 队列 优先队列 双端队列

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

哈希表 映射 集合

  1. 有效的字母异位词 (opens new window)
  2. 字母异位词分组 (opens new window)
  3. 两数之和 (opens new window)

树 二叉树 二叉搜索树

堆和二叉堆、图

泛型递归、树的递归

分治 回溯

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

贪心算法

二分

动态规划

字典树和并查集

高级搜索

红黑树和AVL树

漫画:什么是红黑树? (opens new window)

位运算

布隆过滤器 LRU缓存

LRU 缓存机制 (opens new window)

排序算法

高级动态规划

字符串算法

刷题路线

基础

深度优先搜索

回溯

分治

动态规划