1. 字符串的排列historical

    使用递归回溯生成字符串的所有排列,去重后按字典序排序。

  2. 跳台阶historical

    使用斐波那契数列的迭代关系计算青蛙跳台阶的跳法数量。

  3. 变态跳台阶historical

    通过递推公式和规律推导每次可跳任意级台阶时的跳法数量。

  4. 斐波那契数列historical

    记录斐波那契数列的递归、缓存和动态规划三种实现。

  5. 二进制中1的个数historical

    通过逐位移位统计 32 位二进制表示中 1 的个数。

  6. 数值的整数次方historical

    通过循环乘法计算浮点数的整数次方,并处理负指数。

  7. 整数中1出现的次数historical

    逐个枚举整数并取模统计从 1 到 n 的十进制表示中数字 1 出现的次数。

  8. 字符流中第一个不重复的字符historical

    使用 map 统计字符次数并保留输入顺序,查找字符流中第一个只出现一次的字符。

  9. 左旋转字符串historical

    记录字符串循环左移的切片拼接和三次翻转实现。

  10. 扑克牌顺子historical

    排序后将大小王视为 0,利用非零牌之间的间隔判断五张牌能否组成顺子。

  11. 替换空格historical

    记录逐字符拼接和预分配空间两种将空格替换为 %20 的实现。

  12. 从尾到头打印链表historical

    记录通过递归或栈按从尾到头顺序输出链表的方法。

  13. 反转链表historical

    记录使用栈和三指针反转单链表的实现。

  14. 合并两个排序的链表historical

    记录迭代和递归合并两个有序链表的实现。

  15. 链表中倒数第k个结点historical

    记录数组、长度换算和快慢指针查找倒数第 k 个结点的方法。

  16. 复杂链表的复制historical

    记录通过原链表节点间插入副本节点来复制复杂链表的方法。

  17. 链表中环的入口结点historical

    记录 set 和快慢指针查找链表环入口结点的方法。

  18. 两个链表的第一个公共结点historical

    记录通过链表长度差和双指针查找两个链表第一个公共结点的方法。

  19. 删除链表中重复的结点historical

    记录通过计数或集合删除排序链表中所有重复结点的方法。

  20. 二叉搜索树的后序遍历序列historical

    记录递归判断一个序列是否为二叉搜索树后序遍历结果的方法。

  21. 二叉树的下一个结点historical

    记录通过完整中序遍历或父指针关系查找二叉树中序后继结点的方法。

  22. 二叉搜索树与双向链表historical

    记录通过中序遍历或递归把二叉搜索树转换为排序双向链表的方法。

  23. 二叉搜索树的第k个结点historical

    记录通过中序遍历查找二叉搜索树第 k 小结点,以及反向中序查找第 k 大结点的方法。

  24. 二叉树的深度historical

    记录通过递归取左右子树最大深度计算二叉树深度的方法。

  25. 从上往下打印二叉树historical

    记录使用队列进行二叉树层序遍历并从上到下输出节点的方法。

  26. 对称的二叉树historical

    记录通过递归比较左右子树镜像位置判断二叉树是否对称的方法。

  27. 平衡二叉树historical

    记录通过比较左右子树高度差并递归检查子树判断平衡二叉树的方法。

  28. 二叉树的镜像historical

    记录通过递归、栈和队列交换左右子树生成二叉树镜像的方法。

  29. 把二叉树打印成多行historical

    记录使用队列和行尾指针把二叉树按层打印为多行的方法。

  30. 按之字形顺序打印二叉树historical

    记录在逐层打印二叉树的基础上交替反转行顺序实现之字形遍历的方法。

  31. 树的子结构historical

    记录通过先序递归匹配判断一棵二叉树是否为另一棵树子结构的方法。

  32. 重建二叉树historical

    记录根据前序遍历和中序遍历递归重建二叉树的方法。

  33. 二叉树中和为某一值的路径historical

    记录通过深度优先遍历、先序遍历和回溯查找二叉树中路径和的方法。

  34. 序列化二叉树historical

    记录使用先序遍历,以及先序遍历与中序遍历组合序列化和反序列化二叉树的方法。

  35. 把字符串转换成整数historical

    记录字符串转整数的字符解析和 atoi 实现。

  36. 翻转单词顺序列historical

    记录通过字符串切分和两次翻转实现单词顺序反转的方法。

  37. 包含min函数的栈historical

    记录使用辅助最小值栈实现 O(1) 获取栈最小值的方法。

  38. 栈的压入弹出序列historical

    记录通过辅助栈判断给定序列是否为合法弹出序列的方法。

  39. 用两个栈实现队列historical

    记录使用两个栈实现队列 Push、Pop、Peek 和 Empty 操作的方法。

  40. 二维数组中的查找historical

    记录《剑指 Offer》“二维数组中的查找”的原始解题笔记。

  41. 和为S的两个数字historical

    记录《剑指 Offer》“和为S的两个数字”的原始解题笔记。

  42. 和为S的连续正数序列historical

    记录《剑指 Offer》“和为S的连续正数序列”的原始解题笔记。

  43. 圆圈中最后剩下的数historical

    记录《剑指 Offer》“圆圈中最后剩下的数”的原始解题笔记。

  44. 把数组排成最小的数historical

    记录《剑指 Offer》“把数组排成最小的数”的原始解题笔记。

  45. 数字在排序数组中出现的次数historical

    记录《剑指 Offer》“数字在排序数组中出现的次数”的原始解题笔记。

  46. 数组中出现次数超过一半的数字historical

    记录《剑指 Offer》“数组中出现次数超过一半的数字”的原始解题笔记。

  47. 数组中只出现一次的数字historical

    记录《剑指 Offer》“数组中只出现一次的数字”的原始解题笔记。

  48. 数组中的逆序对historical

    记录《剑指 Offer》“数组中的逆序对”的原始解题笔记。

  49. 数组中重复的数字historical

    记录《剑指 Offer》“数组中重复的数字”的原始解题笔记。

  50. 旋转数组的最小数字historical

    记录《剑指 Offer》“旋转数组的最小数字”的原始解题笔记。

  51. 最小的K个数historical

    记录《剑指 Offer》“最小的K个数”的原始解题笔记。

  52. 机器人的运动范围historical

    记录《剑指 Offer》“机器人的运动范围”的原始解题笔记。

  53. 滑动窗口的最大值historical

    记录《剑指 Offer》“滑动窗口的最大值”的原始解题笔记。

  54. 调整数组顺序使奇数位于偶数前面historical

    记录《剑指 Offer》“调整数组顺序使奇数位于偶数前面”的原始解题笔记。

  55. 连续子数组的最大和historical

    记录《剑指 Offer》“连续子数组的最大和”的原始解题笔记。