所有题目来源于慕课网波波老师的课程:

《玩转算法面试 从真题到思维全面提升算法思维》

为了面试,更为了提升你的算法思维

简单** 中等 **困难

一、数组中的问题其实最常见

1. 如何写出正确的程序

2. 基础算法思路的应用

3. 对撞指针

4. 滑动窗口

二、查找表相关问题

三、在链表中穿针引线

四、栈、队列、优先队列

1. 栈的基础使用

2. 栈和递归的紧密关系

3. 队列

  • 队列的基本应用-广度优先遍历
  1. 树的层序遍历
  1. BFS和图的最短路径

4. 优先队列

  • 优先队列也是一种队列,底层使用堆来实现。统计频率,排序优先队列,O(nlogk)优先队列,O(nlog(n-k))
  • 347号题有3种解题思路统计频率,排序优先队列,O(nlogk)优先队列,O(nlog(n-k))
  • 347. Top K Frequent Elements
  • 23. Merge k Sorted Lists

五、二叉树和递归

1. 二叉树具有天然递归结构

2. 注意递归终止条件

3. 更复杂的递归逻辑

4. 二分搜索树中的问题

六、递归和回溯

1. 本质是树形问题

2. 排列问题

3. 组合问题

  • 077. 组合

七、动态规划基础

动态规划:将原问题拆解成若干的子问题,同时保存子问题的答案使得每个子问题只求解一次,最终获得原问题的答案。
最优子结构:通过求子问题的最优解,可以获得原问题的最优解。
动态规划.jpg

八、贪心算法