Skip to content

哈希表(Hash table),也称为散列表,是一种数据结构,它允许快速地访问和插入数据。哈希表的主要优势在于查找速度快,它避免了遍历整个表的需要。

动态规划(Dynamic programming)是一种通过把原问题分解为相对简单的子问题的方式求解复杂问题的方法。

双指针(Two Pointers)是一种常用的算法,用于解决数组和链表等数据结构的问题。它的基本思想是使用两个指针在数据结构中同时移动,以便有效地查找或比较元素。

双指针算法常见的有三种:

  • 快慢指针
  • 双向指针:两个指针一个从最左,一个从最右出发进行查找,典型应用为二分查找
  • 滑动窗口:两个指针一前一后出发,两个指针中间维持一个窗口结构

回溯算法(Back Tracking)实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。

递归算法(Recursive)是一种直接或者间接调用自身函数或者方法的算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递归调用方法来表示问题的解。

数组 二分查找 双指针 排序 字符串 链表 滑动窗口 哈希表 深度优先搜索 广度优先搜索 动态规划 矩阵 递归 回溯 位运算 记忆化搜索 分治