算法基础

算法基础

算法定义

算法评估

空间复杂度

时间复杂度

常用算法

排序

  • 比较类
    • 冒泡排序
    • 选择排序
    • 插入排序
    • 归并排序
    • 希尔排序
    • 快速排序
    • 堆排序
  • 非比较类
    • 计数排序
    • 桶排序
    • 基数排序

查找

  • 顺序查找
  • 二分查找
  • 插值查找
  • 斐波那契查找
  • 树表查找
  • 哈希查找
  • 分块查找
  • 快速幂
  • 伐木问题
  • 局部最小值
  • 最小 K 个数(O(n))

贪心法

  • 股票买卖
  • 最长非重复子串
  • 跳跃游戏
  • 最大子数组
  • 数组主元素(出现次数>数组大小一半的元素)

分治法

  • 遍历 BPS/DPS
  • N 皇后问题
  • 单词接龙
  • 爬楼梯(Climb Stair)
  • 数独
  • 路径和(Path Sum)

动态规划

  • 背包问题(Package)
  • 最长公共子序列(Longest Common SubSequence)
  • 最长公共子串(Longest Common SubArray)
  • 最长递增子序列(Longest Increment SubSequence)
  • 最长连续递增子序列(Longest ICS)
  • 最大连续子数组和/积
  • 不同子序列数()
  • BST 个数()
  • 最小路径和
  • 爬楼梯
  • 单词划分
  • 编辑距离
  • 回文分割
  • 数字三角形
  • 约瑟夫问题

其他

  • 最长回文子串: Manacher 算法
  • 最长公共前缀: KMP 算法
updatedupdated2024-05-102024-05-10