文章目录

  • 回溯算法
  • 动态规划
  • 排序算法
  • 链表
  • 二叉树
  • 字符串
  • 数组
  • 哈希表


回溯算法

  • 组合问题
  • 字符串切割问题
  • 排列问题
  • 子集问题
  • 递增子序列问题
  • 棋盘

动态规划

  • 动态规划基础
  • 背包问题
  • 01背包 (二维,一维滚动背包)
  • 完全背包
  • 多重背包
  • 股票问题
  • 打家劫舍
  • 子序列问题

排序算法

  • 排序算法时间复杂度
  • 选择排序
  • 冒泡排序
  • 插入排序
  • 希尔排序
  • 归并排序
  • 堆排序
  • 快速排序
  • 基数排序
  • 桶排序
  • 计数排序

链表

二叉树

  • 前序遍历,递归与非递归
  • 中序遍历,递归与非递归
  • 后序遍历,递归与非递归
  • 二叉树的层次遍历
  • 二叉树的最大深度
  • 二叉树的最大宽度
  • 如何判断一颗二叉树是否是搜索二叉树
  • 如何判断一颗二叉树是否是完全二叉树
  • 如何判断一颗二叉树是否是满二叉树
  • 如何判断一颗二叉树是否是平衡二叉树
  • 给定两个二叉树的节点node1和node2,找到他们的最低公共祖先节点

字符串

数组

解题思路:二分法、双指针、滑动窗口、模拟行为

  • 二分查找
  • 移除元素

哈希表