From e800d0680718680ea0a1c914a89df17bbdb7305a Mon Sep 17 00:00:00 2001 From: CyC2018 Date: Sat, 30 Nov 2019 23:44:22 +0800 Subject: [PATCH] auto commit --- docs/notes/Leetcode 题解 - 二分查找.md | 6 +- docs/notes/剑指 Offer 题解 - 目录.md | 152 ++++++++++++------------- docs/notes/剑指 Offer 题解 - 目录1.md | 152 ++++++++++++------------- notes/Leetcode 题解 - 二分查找.md | 6 +- notes/剑指 Offer 题解 - 目录.md | 152 ++++++++++++------------- notes/剑指 Offer 题解 - 目录1.md | 152 ++++++++++++------------- 6 files changed, 314 insertions(+), 306 deletions(-) diff --git a/docs/notes/Leetcode 题解 - 二分查找.md b/docs/notes/Leetcode 题解 - 二分查找.md index 4238de26..b6039fb3 100644 --- a/docs/notes/Leetcode 题解 - 二分查找.md +++ b/docs/notes/Leetcode 题解 - 二分查找.md @@ -8,7 +8,7 @@ -正常实现** +**正常实现** ```text Input : [1,2,3,4,5] @@ -276,6 +276,10 @@ Input: nums = [5,7,7,8,8,10], target = 6 Output: [-1,-1] ``` +题目描述:给定一个有序数组 nums 和一个目标 target,要求找到 target 在 nums 中的第一个位置和最后一个位置。 + + + ```java public int[] searchRange(int[] nums, int target) { int first = binarySearch(nums, target); diff --git a/docs/notes/剑指 Offer 题解 - 目录.md b/docs/notes/剑指 Offer 题解 - 目录.md index 8999572d..a7c246bc 100644 --- a/docs/notes/剑指 Offer 题解 - 目录.md +++ b/docs/notes/剑指 Offer 题解 - 目录.md @@ -1,82 +1,82 @@ # 目录 -- [3. 数组中重复的数字.md](3.%20数组中重复的数字.md) -- [4. 二维数组中的查找.md](4.%20二维数组中的查找.md) -- [5. 替换空格.md](5.%20替换空格.md) -- [6. 从尾到头打印链表.md](6.%20从尾到头打印链表.md) -- [7. 重建二叉树.md](7.%20重建二叉树.md) -- [8. 二叉树的下一个结点.md](8.%20二叉树的下一个结点.md) -- [9. 用两个栈实现队列.md](9.%20用两个栈实现队列.md) -- [10.1 斐波那契数列.md](10.1%20斐波那契数列.md) -- [10.2 矩形覆盖.md](10.2%20矩形覆盖.md) -- [10.3 跳台阶.md](10.3%20跳台阶.md) -- [10.4 变态跳台阶.md](10.4%20变态跳台阶.md) -- [11. 旋转数组的最小数字.md](11.%20旋转数组的最小数字.md) -- [12. 矩阵中的路径.md](12.%20矩阵中的路径.md) -- [13. 机器人的运动范围.md](13.%20机器人的运动范围.md) -- [14. 剪绳子.md](14.%20剪绳子.md) -- [15. 二进制中 1 的个数.md](15.%20二进制中%201%20的个数.md) -- [16. 数值的整数次方.md](16.%20数值的整数次方.md) -- [17. 打印从 1 到最大的 n 位数.md](17.%20打印从%201%20到最大的%20n%20位数.md) -- [18.1 在 O(1) 时间内删除链表节点.md](18.1%20在%20O(1)%20时间内删除链表节点.md) -- [18.2 删除链表中重复的结点.md](18.2%20删除链表中重复的结点.md) -- [19. 正则表达式匹配.md](19.%20正则表达式匹配.md) -- [20. 表示数值的字符串.md](20.%20表示数值的字符串.md) -- [21. 调整数组顺序使奇数位于偶数前面.md](21.%20调整数组顺序使奇数位于偶数前面.md) -- [22. 链表中倒数第 K 个结点.md](22.%20链表中倒数第%20K%20个结点.md) -- [23. 链表中环的入口结点.md](23.%20链表中环的入口结点.md) -- [24. 反转链表.md](24.%20反转链表.md) -- [25. 合并两个排序的链表.md](25.%20合并两个排序的链表.md) -- [26. 树的子结构.md](26.%20树的子结构.md) -- [27. 二叉树的镜像.md](27.%20二叉树的镜像.md) -- [28. 对称的二叉树.md](28.%20对称的二叉树.md) -- [29. 顺时针打印矩阵.md](29.%20顺时针打印矩阵.md) -- [30. 包含 min 函数的栈.md](30.%20包含%20min%20函数的栈.md) -- [31. 栈的压入、弹出序列.md](31.%20栈的压入、弹出序列.md) -- [32.1 从上往下打印二叉树.md](32.1%20从上往下打印二叉树.md) -- [32.2 把二叉树打印成多行.md](32.2%20把二叉树打印成多行.md) -- [32.3 按之字形顺序打印二叉树.md](32.3%20按之字形顺序打印二叉树.md) -- [33. 二叉搜索树的后序遍历序列.md](33.%20二叉搜索树的后序遍历序列.md) -- [34. 二叉树中和为某一值的路径.md](34.%20二叉树中和为某一值的路径.md) -- [35. 复杂链表的复制.md](35.%20复杂链表的复制.md) -- [36. 二叉搜索树与双向链表.md](36.%20二叉搜索树与双向链表.md) -- [37. 序列化二叉树.md](37.%20序列化二叉树.md) -- [38. 字符串的排列.md](38.%20字符串的排列.md) -- [39. 数组中出现次数超过一半的数字.md](39.%20数组中出现次数超过一半的数字.md) -- [40. 最小的 K 个数.md](40.%20最小的%20K%20个数.md) -- [41.1 数据流中的中位数.md](41.1%20数据流中的中位数.md) -- [41.2 字符流中第一个不重复的字符.md](41.2%20字符流中第一个不重复的字符.md) -- [42. 连续子数组的最大和.md](42.%20连续子数组的最大和.md) -- [43. 从 1 到 n 整数中 1 出现的次数.md](43.%20从%201%20到%20n%20整数中%201%20出现的次数.md) -- [44. 数字序列中的某一位数字.md](44.%20数字序列中的某一位数字.md) -- [45. 把数组排成最小的数.md](45.%20把数组排成最小的数.md) -- [46. 把数字翻译成字符串.md](46.%20把数字翻译成字符串.md) -- [47. 礼物的最大价值.md](47.%20礼物的最大价值.md) -- [48. 最长不含重复字符的子字符串.md](48.%20最长不含重复字符的子字符串.md) -- [49. 丑数.md](49.%20丑数.md) -- [50. 第一个只出现一次的字符位置.md](50.%20第一个只出现一次的字符位置.md) -- [51. 数组中的逆序对.md](51.%20数组中的逆序对.md) -- [52. 两个链表的第一个公共结点.md](52.%20两个链表的第一个公共结点.md) -- [53. 数字在排序数组中出现的次数.md](53.%20数字在排序数组中出现的次数.md) -- [54. 二叉查找树的第 K 个结点.md](54.%20二叉查找树的第%20K%20个结点.md) -- [55.1 二叉树的深度.md](55.1%20二叉树的深度.md) -- [55.2 平衡二叉树.md](55.2%20平衡二叉树.md) -- [56. 数组中只出现一次的数字.md](56.%20数组中只出现一次的数字.md) -- [57.1 和为 S 的两个数字.md](57.1%20和为%20S%20的两个数字.md) -- [57.2 和为 S 的连续正数序列.md](57.2%20和为%20S%20的连续正数序列.md) -- [58.1 翻转单词顺序列.md](58.1%20翻转单词顺序列.md) -- [58.2 左旋转字符串.md](58.2%20左旋转字符串.md) -- [59. 滑动窗口的最大值.md](59.%20滑动窗口的最大值.md) -- [60. n 个骰子的点数.md](60.%20n%20个骰子的点数.md) -- [61. 扑克牌顺子.md](61.%20扑克牌顺子.md) -- [62. 圆圈中最后剩下的数.md](62.%20圆圈中最后剩下的数.md) -- [63. 股票的最大利润.md](63.%20股票的最大利润.md) -- [64. 求 1+2+3+...+n.md](64.%20求%201+2+3+...+n.md) -- [65. 不用加减乘除做加法.md](65.%20不用加减乘除做加法.md) -- [66. 构建乘积数组.md](66.%20构建乘积数组.md) -- [67. 把字符串转换成整数.md](67.%20把字符串转换成整数.md) -- [68. 树中两个节点的最低公共祖先.md](68.%20树中两个节点的最低公共祖先.md) +- [3. 数组中重复的数字](3.%20数组中重复的数字.md) +- [4. 二维数组中的查找](4.%20二维数组中的查找.md) +- [5. 替换空格](5.%20替换空格.md) +- [6. 从尾到头打印链表](6.%20从尾到头打印链表.md) +- [7. 重建二叉树](7.%20重建二叉树.md) +- [8. 二叉树的下一个结点](8.%20二叉树的下一个结点.md) +- [9. 用两个栈实现队列](9.%20用两个栈实现队列.md) +- [10.1 斐波那契数列](10.1%20斐波那契数列.md) +- [10.2 矩形覆盖](10.2%20矩形覆盖.md) +- [10.3 跳台阶](10.3%20跳台阶.md) +- [10.4 变态跳台阶](10.4%20变态跳台阶.md) +- [11. 旋转数组的最小数字](11.%20旋转数组的最小数字.md) +- [12. 矩阵中的路径](12.%20矩阵中的路径.md) +- [13. 机器人的运动范围](13.%20机器人的运动范围.md) +- [14. 剪绳子](14.%20剪绳子.md) +- [15. 二进制中 1 的个数](15.%20二进制中%201%20的个数.md) +- [16. 数值的整数次方](16.%20数值的整数次方.md) +- [17. 打印从 1 到最大的 n 位数](17.%20打印从%201%20到最大的%20n%20位数.md) +- [18.1 在 O(1) 时间内删除链表节点](18.1%20在%20O(1)%20时间内删除链表节点.md) +- [18.2 删除链表中重复的结点](18.2%20删除链表中重复的结点.md) +- [19. 正则表达式匹配](19.%20正则表达式匹配.md) +- [20. 表示数值的字符串](20.%20表示数值的字符串.md) +- [21. 调整数组顺序使奇数位于偶数前面](21.%20调整数组顺序使奇数位于偶数前面.md) +- [22. 链表中倒数第 K 个结点](22.%20链表中倒数第%20K%20个结点.md) +- [23. 链表中环的入口结点](23.%20链表中环的入口结点.md) +- [24. 反转链表](24.%20反转链表.md) +- [25. 合并两个排序的链表](25.%20合并两个排序的链表.md) +- [26. 树的子结构](26.%20树的子结构.md) +- [27. 二叉树的镜像](27.%20二叉树的镜像.md) +- [28. 对称的二叉树](28.%20对称的二叉树.md) +- [29. 顺时针打印矩阵](29.%20顺时针打印矩阵.md) +- [30. 包含 min 函数的栈](30.%20包含%20min%20函数的栈.md) +- [31. 栈的压入、弹出序列](31.%20栈的压入、弹出序列.md) +- [32.1 从上往下打印二叉树](32.1%20从上往下打印二叉树.md) +- [32.2 把二叉树打印成多行](32.2%20把二叉树打印成多行.md) +- [32.3 按之字形顺序打印二叉树](32.3%20按之字形顺序打印二叉树.md) +- [33. 二叉搜索树的后序遍历序列](33.%20二叉搜索树的后序遍历序列.md) +- [34. 二叉树中和为某一值的路径](34.%20二叉树中和为某一值的路径.md) +- [35. 复杂链表的复制](35.%20复杂链表的复制.md) +- [36. 二叉搜索树与双向链表](36.%20二叉搜索树与双向链表.md) +- [37. 序列化二叉树](37.%20序列化二叉树.md) +- [38. 字符串的排列](38.%20字符串的排列.md) +- [39. 数组中出现次数超过一半的数字](39.%20数组中出现次数超过一半的数字.md) +- [40. 最小的 K 个数](40.%20最小的%20K%20个数.md) +- [41.1 数据流中的中位数](41.1%20数据流中的中位数.md) +- [41.2 字符流中第一个不重复的字符](41.2%20字符流中第一个不重复的字符.md) +- [42. 连续子数组的最大和](42.%20连续子数组的最大和.md) +- [43. 从 1 到 n 整数中 1 出现的次数](43.%20从%201%20到%20n%20整数中%201%20出现的次数) +- [44. 数字序列中的某一位数字](44.%20数字序列中的某一位数字.md) +- [45. 把数组排成最小的数](45.%20把数组排成最小的数.md) +- [46. 把数字翻译成字符串](46.%20把数字翻译成字符串.md) +- [47. 礼物的最大价值](47.%20礼物的最大价值.md) +- [48. 最长不含重复字符的子字符串](48.%20最长不含重复字符的子字符串.md) +- [49. 丑数](49.%20丑数.md) +- [50. 第一个只出现一次的字符位置](50.%20第一个只出现一次的字符位置.md) +- [51. 数组中的逆序对](51.%20数组中的逆序对.md) +- [52. 两个链表的第一个公共结点](52.%20两个链表的第一个公共结点.md) +- [53. 数字在排序数组中出现的次数](53.%20数字在排序数组中出现的次数.md) +- [54. 二叉查找树的第 K 个结点](54.%20二叉查找树的第%20K%20个结点.md) +- [55.1 二叉树的深度](55.1%20二叉树的深度.md) +- [55.2 平衡二叉树](55.2%20平衡二叉树.md) +- [56. 数组中只出现一次的数字](56.%20数组中只出现一次的数字.md) +- [57.1 和为 S 的两个数字](57.1%20和为%20S%20的两个数字.md) +- [57.2 和为 S 的连续正数序列](57.2%20和为%20S%20的连续正数序列.md) +- [58.1 翻转单词顺序列](58.1%20翻转单词顺序列.md) +- [58.2 左旋转字符串](58.2%20左旋转字符串.md) +- [59. 滑动窗口的最大值](59.%20滑动窗口的最大值.md) +- [60. n 个骰子的点数](60.%20n%20个骰子的点数.md) +- [61. 扑克牌顺子](61.%20扑克牌顺子.md) +- [62. 圆圈中最后剩下的数](62.%20圆圈中最后剩下的数.md) +- [63. 股票的最大利润](63.%20股票的最大利润.md) +- [64. 求 1+2+3+...+n](64.%20求%201+2+3+...+n.md) +- [65. 不用加减乘除做加法](65.%20不用加减乘除做加法.md) +- [66. 构建乘积数组](66.%20构建乘积数组.md) +- [67. 把字符串转换成整数](67.%20把字符串转换成整数.md) +- [68. 树中两个节点的最低公共祖先](68.%20树中两个节点的最低公共祖先.md) # 参考文献 diff --git a/docs/notes/剑指 Offer 题解 - 目录1.md b/docs/notes/剑指 Offer 题解 - 目录1.md index 31c40591..11e35e73 100644 --- a/docs/notes/剑指 Offer 题解 - 目录1.md +++ b/docs/notes/剑指 Offer 题解 - 目录1.md @@ -1,81 +1,81 @@ # 目录 -- [3. 数组中重复的数字.md](notes/3.%20数组中重复的数字.md) -- [4. 二维数组中的查找.md](notes/4.%20二维数组中的查找.md) -- [5. 替换空格.md](notes/5.%20替换空格.md) -- [6. 从尾到头打印链表.md](notes/6.%20从尾到头打印链表.md) -- [7. 重建二叉树.md](notes/7.%20重建二叉树.md) -- [8. 二叉树的下一个结点.md](notes/8.%20二叉树的下一个结点.md) -- [9. 用两个栈实现队列.md](notes/9.%20用两个栈实现队列.md) -- [10.1 斐波那契数列.md](notes/10.1%20斐波那契数列.md) -- [10.2 矩形覆盖.md](notes/10.2%20矩形覆盖.md) -- [10.3 跳台阶.md](notes/10.3%20跳台阶.md) -- [10.4 变态跳台阶.md](notes/10.4%20变态跳台阶.md) -- [11. 旋转数组的最小数字.md](notes/11.%20旋转数组的最小数字.md) -- [12. 矩阵中的路径.md](notes/12.%20矩阵中的路径.md) -- [13. 机器人的运动范围.md](notes/13.%20机器人的运动范围.md) -- [14. 剪绳子.md](notes/14.%20剪绳子.md) -- [15. 二进制中 1 的个数.md](notes/15.%20二进制中%201%20的个数.md) -- [16. 数值的整数次方.md](notes/16.%20数值的整数次方.md) -- [17. 打印从 1 到最大的 n 位数.md](notes/17.%20打印从%201%20到最大的%20n%20位数.md) -- [18.1 在 O(1) 时间内删除链表节点.md](notes/18.1%20在%20O(1)%20时间内删除链表节点.md) -- [18.2 删除链表中重复的结点.md](notes/18.2%20删除链表中重复的结点.md) -- [19. 正则表达式匹配.md](notes/19.%20正则表达式匹配.md) -- [20. 表示数值的字符串.md](notes/20.%20表示数值的字符串.md) -- [21. 调整数组顺序使奇数位于偶数前面.md](notes/21.%20调整数组顺序使奇数位于偶数前面.md) -- [22. 链表中倒数第 K 个结点.md](notes/22.%20链表中倒数第%20K%20个结点.md) -- [23. 链表中环的入口结点.md](notes/23.%20链表中环的入口结点.md) -- [24. 反转链表.md](notes/24.%20反转链表.md) -- [25. 合并两个排序的链表.md](notes/25.%20合并两个排序的链表.md) -- [26. 树的子结构.md](notes/26.%20树的子结构.md) -- [27. 二叉树的镜像.md](notes/27.%20二叉树的镜像.md) -- [28. 对称的二叉树.md](notes/28.%20对称的二叉树.md) -- [29. 顺时针打印矩阵.md](notes/29.%20顺时针打印矩阵.md) -- [30. 包含 min 函数的栈.md](notes/30.%20包含%20min%20函数的栈.md) -- [31. 栈的压入、弹出序列.md](notes/31.%20栈的压入、弹出序列.md) -- [32.1 从上往下打印二叉树.md](notes/32.1%20从上往下打印二叉树.md) -- [32.2 把二叉树打印成多行.md](notes/32.2%20把二叉树打印成多行.md) -- [32.3 按之字形顺序打印二叉树.md](notes/32.3%20按之字形顺序打印二叉树.md) -- [33. 二叉搜索树的后序遍历序列.md](notes/33.%20二叉搜索树的后序遍历序列.md) -- [34. 二叉树中和为某一值的路径.md](notes/34.%20二叉树中和为某一值的路径.md) -- [35. 复杂链表的复制.md](notes/35.%20复杂链表的复制.md) -- [36. 二叉搜索树与双向链表.md](notes/36.%20二叉搜索树与双向链表.md) -- [37. 序列化二叉树.md](notes/37.%20序列化二叉树.md) -- [38. 字符串的排列.md](notes/38.%20字符串的排列.md) -- [39. 数组中出现次数超过一半的数字.md](notes/39.%20数组中出现次数超过一半的数字.md) -- [40. 最小的 K 个数.md](notes/40.%20最小的%20K%20个数.md) -- [41.1 数据流中的中位数.md](notes/41.1%20数据流中的中位数.md) -- [41.2 字符流中第一个不重复的字符.md](notes/41.2%20字符流中第一个不重复的字符.md) -- [42. 连续子数组的最大和.md](notes/42.%20连续子数组的最大和.md) -- [43. 从 1 到 n 整数中 1 出现的次数.md](notes/43.%20从%201%20到%20n%20整数中%201%20出现的次数.md) -- [44. 数字序列中的某一位数字.md](notes/44.%20数字序列中的某一位数字.md) -- [45. 把数组排成最小的数.md](notes/45.%20把数组排成最小的数.md) -- [46. 把数字翻译成字符串.md](notes/46.%20把数字翻译成字符串.md) -- [47. 礼物的最大价值.md](notes/47.%20礼物的最大价值.md) -- [48. 最长不含重复字符的子字符串.md](notes/48.%20最长不含重复字符的子字符串.md) -- [49. 丑数.md](notes/49.%20丑数.md) -- [50. 第一个只出现一次的字符位置.md](notes/50.%20第一个只出现一次的字符位置.md) -- [51. 数组中的逆序对.md](notes/51.%20数组中的逆序对.md) -- [52. 两个链表的第一个公共结点.md](notes/52.%20两个链表的第一个公共结点.md) -- [53. 数字在排序数组中出现的次数.md](notes/53.%20数字在排序数组中出现的次数.md) -- [54. 二叉查找树的第 K 个结点.md](notes/54.%20二叉查找树的第%20K%20个结点.md) -- [55.1 二叉树的深度.md](notes/55.1%20二叉树的深度.md) -- [55.2 平衡二叉树.md](notes/55.2%20平衡二叉树.md) -- [56. 数组中只出现一次的数字.md](notes/56.%20数组中只出现一次的数字.md) -- [57.1 和为 S 的两个数字.md](notes/57.1%20和为%20S%20的两个数字.md) -- [57.2 和为 S 的连续正数序列.md](notes/57.2%20和为%20S%20的连续正数序列.md) -- [58.1 翻转单词顺序列.md](notes/58.1%20翻转单词顺序列.md) -- [58.2 左旋转字符串.md](notes/58.2%20左旋转字符串.md) -- [59. 滑动窗口的最大值.md](notes/59.%20滑动窗口的最大值.md) -- [60. n 个骰子的点数.md](notes/60.%20n%20个骰子的点数.md) -- [61. 扑克牌顺子.md](notes/61.%20扑克牌顺子.md) -- [62. 圆圈中最后剩下的数.md](notes/62.%20圆圈中最后剩下的数.md) -- [63. 股票的最大利润.md](notes/63.%20股票的最大利润.md) -- [64. 求 1+2+3+...+n.md](notes/64.%20求%201+2+3+...+n.md) -- [65. 不用加减乘除做加法.md](notes/65.%20不用加减乘除做加法.md) -- [66. 构建乘积数组.md](notes/66.%20构建乘积数组.md) -- [67. 把字符串转换成整数.md](notes/67.%20把字符串转换成整数.md) -- [68. 树中两个节点的最低公共祖先.md](notes/68.%20树中两个节点的最低公共祖先.md) +- [3. 数组中重复的数字](notes/3.%20数组中重复的数字.md) +- [4. 二维数组中的查找](notes/4.%20二维数组中的查找.md) +- [5. 替换空格](notes/5.%20替换空格.md) +- [6. 从尾到头打印链表](notes/6.%20从尾到头打印链表.md) +- [7. 重建二叉树](notes/7.%20重建二叉树.md) +- [8. 二叉树的下一个结点](notes/8.%20二叉树的下一个结点.md) +- [9. 用两个栈实现队列](notes/9.%20用两个栈实现队列.md) +- [10.1 斐波那契数列](notes/10.1%20斐波那契数列.md) +- [10.2 矩形覆盖](notes/10.2%20矩形覆盖.md) +- [10.3 跳台阶](notes/10.3%20跳台阶.md) +- [10.4 变态跳台阶](notes/10.4%20变态跳台阶.md) +- [11. 旋转数组的最小数字](notes/11.%20旋转数组的最小数字.md) +- [12. 矩阵中的路径](notes/12.%20矩阵中的路径.md) +- [13. 机器人的运动范围](notes/13.%20机器人的运动范围.md) +- [14. 剪绳子](notes/14.%20剪绳子.md) +- [15. 二进制中 1 的个数](notes/15.%20二进制中%201%20的个数.md) +- [16. 数值的整数次方](notes/16.%20数值的整数次方.md) +- [17. 打印从 1 到最大的 n 位数](notes/17.%20打印从%201%20到最大的%20n%20位数.md) +- [18.1 在 O(1) 时间内删除链表节点](notes/18.1%20在%20O(1)%20时间内删除链表节点.md) +- [18.2 删除链表中重复的结点](notes/18.2%20删除链表中重复的结点.md) +- [19. 正则表达式匹配](notes/19.%20正则表达式匹配.md) +- [20. 表示数值的字符串](notes/20.%20表示数值的字符串.md) +- [21. 调整数组顺序使奇数位于偶数前面](notes/21.%20调整数组顺序使奇数位于偶数前面.md) +- [22. 链表中倒数第 K 个结点](notes/22.%20链表中倒数第%20K%20个结点.md) +- [23. 链表中环的入口结点](notes/23.%20链表中环的入口结点.md) +- [24. 反转链表](notes/24.%20反转链表.md) +- [25. 合并两个排序的链表](notes/25.%20合并两个排序的链表.md) +- [26. 树的子结构](notes/26.%20树的子结构.md) +- [27. 二叉树的镜像](notes/27.%20二叉树的镜像.md) +- [28. 对称的二叉树](notes/28.%20对称的二叉树.md) +- [29. 顺时针打印矩阵](notes/29.%20顺时针打印矩阵.md) +- [30. 包含 min 函数的栈](notes/30.%20包含%20min%20函数的栈.md) +- [31. 栈的压入、弹出序列](notes/31.%20栈的压入、弹出序列.md) +- [32.1 从上往下打印二叉树](notes/32.1%20从上往下打印二叉树.md) +- [32.2 把二叉树打印成多行](notes/32.2%20把二叉树打印成多行.md) +- [32.3 按之字形顺序打印二叉树](notes/32.3%20按之字形顺序打印二叉树.md) +- [33. 二叉搜索树的后序遍历序列](notes/33.%20二叉搜索树的后序遍历序列.md) +- [34. 二叉树中和为某一值的路径](notes/34.%20二叉树中和为某一值的路径.md) +- [35. 复杂链表的复制](notes/35.%20复杂链表的复制.md) +- [36. 二叉搜索树与双向链表](notes/36.%20二叉搜索树与双向链表.md) +- [37. 序列化二叉树](notes/37.%20序列化二叉树.md) +- [38. 字符串的排列](notes/38.%20字符串的排列.md) +- [39. 数组中出现次数超过一半的数字](notes/39.%20数组中出现次数超过一半的数字.md) +- [40. 最小的 K 个数](notes/40.%20最小的%20K%20个数.md) +- [41.1 数据流中的中位数](notes/41.1%20数据流中的中位数.md) +- [41.2 字符流中第一个不重复的字符](notes/41.2%20字符流中第一个不重复的字符.md) +- [42. 连续子数组的最大和](notes/42.%20连续子数组的最大和.md) +- [43. 从 1 到 n 整数中 1 出现的次数](notes/43.%20从%201%20到%20n%20整数中%201%20出现的次数.md) +- [44. 数字序列中的某一位数字](notes/44.%20数字序列中的某一位数字.md) +- [45. 把数组排成最小的数](notes/45.%20把数组排成最小的数.md) +- [46. 把数字翻译成字符串](notes/46.%20把数字翻译成字符串.md) +- [47. 礼物的最大价值](notes/47.%20礼物的最大价值.md) +- [48. 最长不含重复字符的子字符串](notes/48.%20最长不含重复字符的子字符串.md) +- [49. 丑数](notes/49.%20丑数.md) +- [50. 第一个只出现一次的字符位置](notes/50.%20第一个只出现一次的字符位置.md) +- [51. 数组中的逆序对](notes/51.%20数组中的逆序对.md) +- [52. 两个链表的第一个公共结点](notes/52.%20两个链表的第一个公共结点.md) +- [53. 数字在排序数组中出现的次数](notes/53.%20数字在排序数组中出现的次数.md) +- [54. 二叉查找树的第 K 个结点](notes/54.%20二叉查找树的第%20K%20个结点.md) +- [55.1 二叉树的深度](notes/55.1%20二叉树的深度.md) +- [55.2 平衡二叉树](notes/55.2%20平衡二叉树.md) +- [56. 数组中只出现一次的数字](notes/56.%20数组中只出现一次的数字.md) +- [57.1 和为 S 的两个数字](notes/57.1%20和为%20S%20的两个数字.md) +- [57.2 和为 S 的连续正数序列](notes/57.2%20和为%20S%20的连续正数序列.md) +- [58.1 翻转单词顺序列](notes/58.1%20翻转单词顺序列.md) +- [58.2 左旋转字符串](notes/58.2%20左旋转字符串.md) +- [59. 滑动窗口的最大值](notes/59.%20滑动窗口的最大值.md) +- [60. n 个骰子的点数](notes/60.%20n%20个骰子的点数.md) +- [61. 扑克牌顺子](notes/61.%20扑克牌顺子.md) +- [62. 圆圈中最后剩下的数](notes/62.%20圆圈中最后剩下的数.md) +- [63. 股票的最大利润](notes/63.%20股票的最大利润.md) +- [64. 求 1+2+3+...+n](notes/64.%20求%201+2+3+...+n.md) +- [65. 不用加减乘除做加法](notes/65.%20不用加减乘除做加法.md) +- [66. 构建乘积数组](notes/66.%20构建乘积数组.md) +- [67. 把字符串转换成整数](notes/67.%20把字符串转换成整数.md) +- [68. 树中两个节点的最低公共祖先](notes/68.%20树中两个节点的最低公共祖先.md) # 参考文献 diff --git a/notes/Leetcode 题解 - 二分查找.md b/notes/Leetcode 题解 - 二分查找.md index 4238de26..b6039fb3 100644 --- a/notes/Leetcode 题解 - 二分查找.md +++ b/notes/Leetcode 题解 - 二分查找.md @@ -8,7 +8,7 @@ -正常实现** +**正常实现** ```text Input : [1,2,3,4,5] @@ -276,6 +276,10 @@ Input: nums = [5,7,7,8,8,10], target = 6 Output: [-1,-1] ``` +题目描述:给定一个有序数组 nums 和一个目标 target,要求找到 target 在 nums 中的第一个位置和最后一个位置。 + + + ```java public int[] searchRange(int[] nums, int target) { int first = binarySearch(nums, target); diff --git a/notes/剑指 Offer 题解 - 目录.md b/notes/剑指 Offer 题解 - 目录.md index 8999572d..a7c246bc 100644 --- a/notes/剑指 Offer 题解 - 目录.md +++ b/notes/剑指 Offer 题解 - 目录.md @@ -1,82 +1,82 @@ # 目录 -- [3. 数组中重复的数字.md](3.%20数组中重复的数字.md) -- [4. 二维数组中的查找.md](4.%20二维数组中的查找.md) -- [5. 替换空格.md](5.%20替换空格.md) -- [6. 从尾到头打印链表.md](6.%20从尾到头打印链表.md) -- [7. 重建二叉树.md](7.%20重建二叉树.md) -- [8. 二叉树的下一个结点.md](8.%20二叉树的下一个结点.md) -- [9. 用两个栈实现队列.md](9.%20用两个栈实现队列.md) -- [10.1 斐波那契数列.md](10.1%20斐波那契数列.md) -- [10.2 矩形覆盖.md](10.2%20矩形覆盖.md) -- [10.3 跳台阶.md](10.3%20跳台阶.md) -- [10.4 变态跳台阶.md](10.4%20变态跳台阶.md) -- [11. 旋转数组的最小数字.md](11.%20旋转数组的最小数字.md) -- [12. 矩阵中的路径.md](12.%20矩阵中的路径.md) -- [13. 机器人的运动范围.md](13.%20机器人的运动范围.md) -- [14. 剪绳子.md](14.%20剪绳子.md) -- [15. 二进制中 1 的个数.md](15.%20二进制中%201%20的个数.md) -- [16. 数值的整数次方.md](16.%20数值的整数次方.md) -- [17. 打印从 1 到最大的 n 位数.md](17.%20打印从%201%20到最大的%20n%20位数.md) -- [18.1 在 O(1) 时间内删除链表节点.md](18.1%20在%20O(1)%20时间内删除链表节点.md) -- [18.2 删除链表中重复的结点.md](18.2%20删除链表中重复的结点.md) -- [19. 正则表达式匹配.md](19.%20正则表达式匹配.md) -- [20. 表示数值的字符串.md](20.%20表示数值的字符串.md) -- [21. 调整数组顺序使奇数位于偶数前面.md](21.%20调整数组顺序使奇数位于偶数前面.md) -- [22. 链表中倒数第 K 个结点.md](22.%20链表中倒数第%20K%20个结点.md) -- [23. 链表中环的入口结点.md](23.%20链表中环的入口结点.md) -- [24. 反转链表.md](24.%20反转链表.md) -- [25. 合并两个排序的链表.md](25.%20合并两个排序的链表.md) -- [26. 树的子结构.md](26.%20树的子结构.md) -- [27. 二叉树的镜像.md](27.%20二叉树的镜像.md) -- [28. 对称的二叉树.md](28.%20对称的二叉树.md) -- [29. 顺时针打印矩阵.md](29.%20顺时针打印矩阵.md) -- [30. 包含 min 函数的栈.md](30.%20包含%20min%20函数的栈.md) -- [31. 栈的压入、弹出序列.md](31.%20栈的压入、弹出序列.md) -- [32.1 从上往下打印二叉树.md](32.1%20从上往下打印二叉树.md) -- [32.2 把二叉树打印成多行.md](32.2%20把二叉树打印成多行.md) -- [32.3 按之字形顺序打印二叉树.md](32.3%20按之字形顺序打印二叉树.md) -- [33. 二叉搜索树的后序遍历序列.md](33.%20二叉搜索树的后序遍历序列.md) -- [34. 二叉树中和为某一值的路径.md](34.%20二叉树中和为某一值的路径.md) -- [35. 复杂链表的复制.md](35.%20复杂链表的复制.md) -- [36. 二叉搜索树与双向链表.md](36.%20二叉搜索树与双向链表.md) -- [37. 序列化二叉树.md](37.%20序列化二叉树.md) -- [38. 字符串的排列.md](38.%20字符串的排列.md) -- [39. 数组中出现次数超过一半的数字.md](39.%20数组中出现次数超过一半的数字.md) -- [40. 最小的 K 个数.md](40.%20最小的%20K%20个数.md) -- [41.1 数据流中的中位数.md](41.1%20数据流中的中位数.md) -- [41.2 字符流中第一个不重复的字符.md](41.2%20字符流中第一个不重复的字符.md) -- [42. 连续子数组的最大和.md](42.%20连续子数组的最大和.md) -- [43. 从 1 到 n 整数中 1 出现的次数.md](43.%20从%201%20到%20n%20整数中%201%20出现的次数.md) -- [44. 数字序列中的某一位数字.md](44.%20数字序列中的某一位数字.md) -- [45. 把数组排成最小的数.md](45.%20把数组排成最小的数.md) -- [46. 把数字翻译成字符串.md](46.%20把数字翻译成字符串.md) -- [47. 礼物的最大价值.md](47.%20礼物的最大价值.md) -- [48. 最长不含重复字符的子字符串.md](48.%20最长不含重复字符的子字符串.md) -- [49. 丑数.md](49.%20丑数.md) -- [50. 第一个只出现一次的字符位置.md](50.%20第一个只出现一次的字符位置.md) -- [51. 数组中的逆序对.md](51.%20数组中的逆序对.md) -- [52. 两个链表的第一个公共结点.md](52.%20两个链表的第一个公共结点.md) -- [53. 数字在排序数组中出现的次数.md](53.%20数字在排序数组中出现的次数.md) -- [54. 二叉查找树的第 K 个结点.md](54.%20二叉查找树的第%20K%20个结点.md) -- [55.1 二叉树的深度.md](55.1%20二叉树的深度.md) -- [55.2 平衡二叉树.md](55.2%20平衡二叉树.md) -- [56. 数组中只出现一次的数字.md](56.%20数组中只出现一次的数字.md) -- [57.1 和为 S 的两个数字.md](57.1%20和为%20S%20的两个数字.md) -- [57.2 和为 S 的连续正数序列.md](57.2%20和为%20S%20的连续正数序列.md) -- [58.1 翻转单词顺序列.md](58.1%20翻转单词顺序列.md) -- [58.2 左旋转字符串.md](58.2%20左旋转字符串.md) -- [59. 滑动窗口的最大值.md](59.%20滑动窗口的最大值.md) -- [60. n 个骰子的点数.md](60.%20n%20个骰子的点数.md) -- [61. 扑克牌顺子.md](61.%20扑克牌顺子.md) -- [62. 圆圈中最后剩下的数.md](62.%20圆圈中最后剩下的数.md) -- [63. 股票的最大利润.md](63.%20股票的最大利润.md) -- [64. 求 1+2+3+...+n.md](64.%20求%201+2+3+...+n.md) -- [65. 不用加减乘除做加法.md](65.%20不用加减乘除做加法.md) -- [66. 构建乘积数组.md](66.%20构建乘积数组.md) -- [67. 把字符串转换成整数.md](67.%20把字符串转换成整数.md) -- [68. 树中两个节点的最低公共祖先.md](68.%20树中两个节点的最低公共祖先.md) +- [3. 数组中重复的数字](3.%20数组中重复的数字.md) +- [4. 二维数组中的查找](4.%20二维数组中的查找.md) +- [5. 替换空格](5.%20替换空格.md) +- [6. 从尾到头打印链表](6.%20从尾到头打印链表.md) +- [7. 重建二叉树](7.%20重建二叉树.md) +- [8. 二叉树的下一个结点](8.%20二叉树的下一个结点.md) +- [9. 用两个栈实现队列](9.%20用两个栈实现队列.md) +- [10.1 斐波那契数列](10.1%20斐波那契数列.md) +- [10.2 矩形覆盖](10.2%20矩形覆盖.md) +- [10.3 跳台阶](10.3%20跳台阶.md) +- [10.4 变态跳台阶](10.4%20变态跳台阶.md) +- [11. 旋转数组的最小数字](11.%20旋转数组的最小数字.md) +- [12. 矩阵中的路径](12.%20矩阵中的路径.md) +- [13. 机器人的运动范围](13.%20机器人的运动范围.md) +- [14. 剪绳子](14.%20剪绳子.md) +- [15. 二进制中 1 的个数](15.%20二进制中%201%20的个数.md) +- [16. 数值的整数次方](16.%20数值的整数次方.md) +- [17. 打印从 1 到最大的 n 位数](17.%20打印从%201%20到最大的%20n%20位数.md) +- [18.1 在 O(1) 时间内删除链表节点](18.1%20在%20O(1)%20时间内删除链表节点.md) +- [18.2 删除链表中重复的结点](18.2%20删除链表中重复的结点.md) +- [19. 正则表达式匹配](19.%20正则表达式匹配.md) +- [20. 表示数值的字符串](20.%20表示数值的字符串.md) +- [21. 调整数组顺序使奇数位于偶数前面](21.%20调整数组顺序使奇数位于偶数前面.md) +- [22. 链表中倒数第 K 个结点](22.%20链表中倒数第%20K%20个结点.md) +- [23. 链表中环的入口结点](23.%20链表中环的入口结点.md) +- [24. 反转链表](24.%20反转链表.md) +- [25. 合并两个排序的链表](25.%20合并两个排序的链表.md) +- [26. 树的子结构](26.%20树的子结构.md) +- [27. 二叉树的镜像](27.%20二叉树的镜像.md) +- [28. 对称的二叉树](28.%20对称的二叉树.md) +- [29. 顺时针打印矩阵](29.%20顺时针打印矩阵.md) +- [30. 包含 min 函数的栈](30.%20包含%20min%20函数的栈.md) +- [31. 栈的压入、弹出序列](31.%20栈的压入、弹出序列.md) +- [32.1 从上往下打印二叉树](32.1%20从上往下打印二叉树.md) +- [32.2 把二叉树打印成多行](32.2%20把二叉树打印成多行.md) +- [32.3 按之字形顺序打印二叉树](32.3%20按之字形顺序打印二叉树.md) +- [33. 二叉搜索树的后序遍历序列](33.%20二叉搜索树的后序遍历序列.md) +- [34. 二叉树中和为某一值的路径](34.%20二叉树中和为某一值的路径.md) +- [35. 复杂链表的复制](35.%20复杂链表的复制.md) +- [36. 二叉搜索树与双向链表](36.%20二叉搜索树与双向链表.md) +- [37. 序列化二叉树](37.%20序列化二叉树.md) +- [38. 字符串的排列](38.%20字符串的排列.md) +- [39. 数组中出现次数超过一半的数字](39.%20数组中出现次数超过一半的数字.md) +- [40. 最小的 K 个数](40.%20最小的%20K%20个数.md) +- [41.1 数据流中的中位数](41.1%20数据流中的中位数.md) +- [41.2 字符流中第一个不重复的字符](41.2%20字符流中第一个不重复的字符.md) +- [42. 连续子数组的最大和](42.%20连续子数组的最大和.md) +- [43. 从 1 到 n 整数中 1 出现的次数](43.%20从%201%20到%20n%20整数中%201%20出现的次数) +- [44. 数字序列中的某一位数字](44.%20数字序列中的某一位数字.md) +- [45. 把数组排成最小的数](45.%20把数组排成最小的数.md) +- [46. 把数字翻译成字符串](46.%20把数字翻译成字符串.md) +- [47. 礼物的最大价值](47.%20礼物的最大价值.md) +- [48. 最长不含重复字符的子字符串](48.%20最长不含重复字符的子字符串.md) +- [49. 丑数](49.%20丑数.md) +- [50. 第一个只出现一次的字符位置](50.%20第一个只出现一次的字符位置.md) +- [51. 数组中的逆序对](51.%20数组中的逆序对.md) +- [52. 两个链表的第一个公共结点](52.%20两个链表的第一个公共结点.md) +- [53. 数字在排序数组中出现的次数](53.%20数字在排序数组中出现的次数.md) +- [54. 二叉查找树的第 K 个结点](54.%20二叉查找树的第%20K%20个结点.md) +- [55.1 二叉树的深度](55.1%20二叉树的深度.md) +- [55.2 平衡二叉树](55.2%20平衡二叉树.md) +- [56. 数组中只出现一次的数字](56.%20数组中只出现一次的数字.md) +- [57.1 和为 S 的两个数字](57.1%20和为%20S%20的两个数字.md) +- [57.2 和为 S 的连续正数序列](57.2%20和为%20S%20的连续正数序列.md) +- [58.1 翻转单词顺序列](58.1%20翻转单词顺序列.md) +- [58.2 左旋转字符串](58.2%20左旋转字符串.md) +- [59. 滑动窗口的最大值](59.%20滑动窗口的最大值.md) +- [60. n 个骰子的点数](60.%20n%20个骰子的点数.md) +- [61. 扑克牌顺子](61.%20扑克牌顺子.md) +- [62. 圆圈中最后剩下的数](62.%20圆圈中最后剩下的数.md) +- [63. 股票的最大利润](63.%20股票的最大利润.md) +- [64. 求 1+2+3+...+n](64.%20求%201+2+3+...+n.md) +- [65. 不用加减乘除做加法](65.%20不用加减乘除做加法.md) +- [66. 构建乘积数组](66.%20构建乘积数组.md) +- [67. 把字符串转换成整数](67.%20把字符串转换成整数.md) +- [68. 树中两个节点的最低公共祖先](68.%20树中两个节点的最低公共祖先.md) # 参考文献 diff --git a/notes/剑指 Offer 题解 - 目录1.md b/notes/剑指 Offer 题解 - 目录1.md index 31c40591..11e35e73 100644 --- a/notes/剑指 Offer 题解 - 目录1.md +++ b/notes/剑指 Offer 题解 - 目录1.md @@ -1,81 +1,81 @@ # 目录 -- [3. 数组中重复的数字.md](notes/3.%20数组中重复的数字.md) -- [4. 二维数组中的查找.md](notes/4.%20二维数组中的查找.md) -- [5. 替换空格.md](notes/5.%20替换空格.md) -- [6. 从尾到头打印链表.md](notes/6.%20从尾到头打印链表.md) -- [7. 重建二叉树.md](notes/7.%20重建二叉树.md) -- [8. 二叉树的下一个结点.md](notes/8.%20二叉树的下一个结点.md) -- [9. 用两个栈实现队列.md](notes/9.%20用两个栈实现队列.md) -- [10.1 斐波那契数列.md](notes/10.1%20斐波那契数列.md) -- [10.2 矩形覆盖.md](notes/10.2%20矩形覆盖.md) -- [10.3 跳台阶.md](notes/10.3%20跳台阶.md) -- [10.4 变态跳台阶.md](notes/10.4%20变态跳台阶.md) -- [11. 旋转数组的最小数字.md](notes/11.%20旋转数组的最小数字.md) -- [12. 矩阵中的路径.md](notes/12.%20矩阵中的路径.md) -- [13. 机器人的运动范围.md](notes/13.%20机器人的运动范围.md) -- [14. 剪绳子.md](notes/14.%20剪绳子.md) -- [15. 二进制中 1 的个数.md](notes/15.%20二进制中%201%20的个数.md) -- [16. 数值的整数次方.md](notes/16.%20数值的整数次方.md) -- [17. 打印从 1 到最大的 n 位数.md](notes/17.%20打印从%201%20到最大的%20n%20位数.md) -- [18.1 在 O(1) 时间内删除链表节点.md](notes/18.1%20在%20O(1)%20时间内删除链表节点.md) -- [18.2 删除链表中重复的结点.md](notes/18.2%20删除链表中重复的结点.md) -- [19. 正则表达式匹配.md](notes/19.%20正则表达式匹配.md) -- [20. 表示数值的字符串.md](notes/20.%20表示数值的字符串.md) -- [21. 调整数组顺序使奇数位于偶数前面.md](notes/21.%20调整数组顺序使奇数位于偶数前面.md) -- [22. 链表中倒数第 K 个结点.md](notes/22.%20链表中倒数第%20K%20个结点.md) -- [23. 链表中环的入口结点.md](notes/23.%20链表中环的入口结点.md) -- [24. 反转链表.md](notes/24.%20反转链表.md) -- [25. 合并两个排序的链表.md](notes/25.%20合并两个排序的链表.md) -- [26. 树的子结构.md](notes/26.%20树的子结构.md) -- [27. 二叉树的镜像.md](notes/27.%20二叉树的镜像.md) -- [28. 对称的二叉树.md](notes/28.%20对称的二叉树.md) -- [29. 顺时针打印矩阵.md](notes/29.%20顺时针打印矩阵.md) -- [30. 包含 min 函数的栈.md](notes/30.%20包含%20min%20函数的栈.md) -- [31. 栈的压入、弹出序列.md](notes/31.%20栈的压入、弹出序列.md) -- [32.1 从上往下打印二叉树.md](notes/32.1%20从上往下打印二叉树.md) -- [32.2 把二叉树打印成多行.md](notes/32.2%20把二叉树打印成多行.md) -- [32.3 按之字形顺序打印二叉树.md](notes/32.3%20按之字形顺序打印二叉树.md) -- [33. 二叉搜索树的后序遍历序列.md](notes/33.%20二叉搜索树的后序遍历序列.md) -- [34. 二叉树中和为某一值的路径.md](notes/34.%20二叉树中和为某一值的路径.md) -- [35. 复杂链表的复制.md](notes/35.%20复杂链表的复制.md) -- [36. 二叉搜索树与双向链表.md](notes/36.%20二叉搜索树与双向链表.md) -- [37. 序列化二叉树.md](notes/37.%20序列化二叉树.md) -- [38. 字符串的排列.md](notes/38.%20字符串的排列.md) -- [39. 数组中出现次数超过一半的数字.md](notes/39.%20数组中出现次数超过一半的数字.md) -- [40. 最小的 K 个数.md](notes/40.%20最小的%20K%20个数.md) -- [41.1 数据流中的中位数.md](notes/41.1%20数据流中的中位数.md) -- [41.2 字符流中第一个不重复的字符.md](notes/41.2%20字符流中第一个不重复的字符.md) -- [42. 连续子数组的最大和.md](notes/42.%20连续子数组的最大和.md) -- [43. 从 1 到 n 整数中 1 出现的次数.md](notes/43.%20从%201%20到%20n%20整数中%201%20出现的次数.md) -- [44. 数字序列中的某一位数字.md](notes/44.%20数字序列中的某一位数字.md) -- [45. 把数组排成最小的数.md](notes/45.%20把数组排成最小的数.md) -- [46. 把数字翻译成字符串.md](notes/46.%20把数字翻译成字符串.md) -- [47. 礼物的最大价值.md](notes/47.%20礼物的最大价值.md) -- [48. 最长不含重复字符的子字符串.md](notes/48.%20最长不含重复字符的子字符串.md) -- [49. 丑数.md](notes/49.%20丑数.md) -- [50. 第一个只出现一次的字符位置.md](notes/50.%20第一个只出现一次的字符位置.md) -- [51. 数组中的逆序对.md](notes/51.%20数组中的逆序对.md) -- [52. 两个链表的第一个公共结点.md](notes/52.%20两个链表的第一个公共结点.md) -- [53. 数字在排序数组中出现的次数.md](notes/53.%20数字在排序数组中出现的次数.md) -- [54. 二叉查找树的第 K 个结点.md](notes/54.%20二叉查找树的第%20K%20个结点.md) -- [55.1 二叉树的深度.md](notes/55.1%20二叉树的深度.md) -- [55.2 平衡二叉树.md](notes/55.2%20平衡二叉树.md) -- [56. 数组中只出现一次的数字.md](notes/56.%20数组中只出现一次的数字.md) -- [57.1 和为 S 的两个数字.md](notes/57.1%20和为%20S%20的两个数字.md) -- [57.2 和为 S 的连续正数序列.md](notes/57.2%20和为%20S%20的连续正数序列.md) -- [58.1 翻转单词顺序列.md](notes/58.1%20翻转单词顺序列.md) -- [58.2 左旋转字符串.md](notes/58.2%20左旋转字符串.md) -- [59. 滑动窗口的最大值.md](notes/59.%20滑动窗口的最大值.md) -- [60. n 个骰子的点数.md](notes/60.%20n%20个骰子的点数.md) -- [61. 扑克牌顺子.md](notes/61.%20扑克牌顺子.md) -- [62. 圆圈中最后剩下的数.md](notes/62.%20圆圈中最后剩下的数.md) -- [63. 股票的最大利润.md](notes/63.%20股票的最大利润.md) -- [64. 求 1+2+3+...+n.md](notes/64.%20求%201+2+3+...+n.md) -- [65. 不用加减乘除做加法.md](notes/65.%20不用加减乘除做加法.md) -- [66. 构建乘积数组.md](notes/66.%20构建乘积数组.md) -- [67. 把字符串转换成整数.md](notes/67.%20把字符串转换成整数.md) -- [68. 树中两个节点的最低公共祖先.md](notes/68.%20树中两个节点的最低公共祖先.md) +- [3. 数组中重复的数字](notes/3.%20数组中重复的数字.md) +- [4. 二维数组中的查找](notes/4.%20二维数组中的查找.md) +- [5. 替换空格](notes/5.%20替换空格.md) +- [6. 从尾到头打印链表](notes/6.%20从尾到头打印链表.md) +- [7. 重建二叉树](notes/7.%20重建二叉树.md) +- [8. 二叉树的下一个结点](notes/8.%20二叉树的下一个结点.md) +- [9. 用两个栈实现队列](notes/9.%20用两个栈实现队列.md) +- [10.1 斐波那契数列](notes/10.1%20斐波那契数列.md) +- [10.2 矩形覆盖](notes/10.2%20矩形覆盖.md) +- [10.3 跳台阶](notes/10.3%20跳台阶.md) +- [10.4 变态跳台阶](notes/10.4%20变态跳台阶.md) +- [11. 旋转数组的最小数字](notes/11.%20旋转数组的最小数字.md) +- [12. 矩阵中的路径](notes/12.%20矩阵中的路径.md) +- [13. 机器人的运动范围](notes/13.%20机器人的运动范围.md) +- [14. 剪绳子](notes/14.%20剪绳子.md) +- [15. 二进制中 1 的个数](notes/15.%20二进制中%201%20的个数.md) +- [16. 数值的整数次方](notes/16.%20数值的整数次方.md) +- [17. 打印从 1 到最大的 n 位数](notes/17.%20打印从%201%20到最大的%20n%20位数.md) +- [18.1 在 O(1) 时间内删除链表节点](notes/18.1%20在%20O(1)%20时间内删除链表节点.md) +- [18.2 删除链表中重复的结点](notes/18.2%20删除链表中重复的结点.md) +- [19. 正则表达式匹配](notes/19.%20正则表达式匹配.md) +- [20. 表示数值的字符串](notes/20.%20表示数值的字符串.md) +- [21. 调整数组顺序使奇数位于偶数前面](notes/21.%20调整数组顺序使奇数位于偶数前面.md) +- [22. 链表中倒数第 K 个结点](notes/22.%20链表中倒数第%20K%20个结点.md) +- [23. 链表中环的入口结点](notes/23.%20链表中环的入口结点.md) +- [24. 反转链表](notes/24.%20反转链表.md) +- [25. 合并两个排序的链表](notes/25.%20合并两个排序的链表.md) +- [26. 树的子结构](notes/26.%20树的子结构.md) +- [27. 二叉树的镜像](notes/27.%20二叉树的镜像.md) +- [28. 对称的二叉树](notes/28.%20对称的二叉树.md) +- [29. 顺时针打印矩阵](notes/29.%20顺时针打印矩阵.md) +- [30. 包含 min 函数的栈](notes/30.%20包含%20min%20函数的栈.md) +- [31. 栈的压入、弹出序列](notes/31.%20栈的压入、弹出序列.md) +- [32.1 从上往下打印二叉树](notes/32.1%20从上往下打印二叉树.md) +- [32.2 把二叉树打印成多行](notes/32.2%20把二叉树打印成多行.md) +- [32.3 按之字形顺序打印二叉树](notes/32.3%20按之字形顺序打印二叉树.md) +- [33. 二叉搜索树的后序遍历序列](notes/33.%20二叉搜索树的后序遍历序列.md) +- [34. 二叉树中和为某一值的路径](notes/34.%20二叉树中和为某一值的路径.md) +- [35. 复杂链表的复制](notes/35.%20复杂链表的复制.md) +- [36. 二叉搜索树与双向链表](notes/36.%20二叉搜索树与双向链表.md) +- [37. 序列化二叉树](notes/37.%20序列化二叉树.md) +- [38. 字符串的排列](notes/38.%20字符串的排列.md) +- [39. 数组中出现次数超过一半的数字](notes/39.%20数组中出现次数超过一半的数字.md) +- [40. 最小的 K 个数](notes/40.%20最小的%20K%20个数.md) +- [41.1 数据流中的中位数](notes/41.1%20数据流中的中位数.md) +- [41.2 字符流中第一个不重复的字符](notes/41.2%20字符流中第一个不重复的字符.md) +- [42. 连续子数组的最大和](notes/42.%20连续子数组的最大和.md) +- [43. 从 1 到 n 整数中 1 出现的次数](notes/43.%20从%201%20到%20n%20整数中%201%20出现的次数.md) +- [44. 数字序列中的某一位数字](notes/44.%20数字序列中的某一位数字.md) +- [45. 把数组排成最小的数](notes/45.%20把数组排成最小的数.md) +- [46. 把数字翻译成字符串](notes/46.%20把数字翻译成字符串.md) +- [47. 礼物的最大价值](notes/47.%20礼物的最大价值.md) +- [48. 最长不含重复字符的子字符串](notes/48.%20最长不含重复字符的子字符串.md) +- [49. 丑数](notes/49.%20丑数.md) +- [50. 第一个只出现一次的字符位置](notes/50.%20第一个只出现一次的字符位置.md) +- [51. 数组中的逆序对](notes/51.%20数组中的逆序对.md) +- [52. 两个链表的第一个公共结点](notes/52.%20两个链表的第一个公共结点.md) +- [53. 数字在排序数组中出现的次数](notes/53.%20数字在排序数组中出现的次数.md) +- [54. 二叉查找树的第 K 个结点](notes/54.%20二叉查找树的第%20K%20个结点.md) +- [55.1 二叉树的深度](notes/55.1%20二叉树的深度.md) +- [55.2 平衡二叉树](notes/55.2%20平衡二叉树.md) +- [56. 数组中只出现一次的数字](notes/56.%20数组中只出现一次的数字.md) +- [57.1 和为 S 的两个数字](notes/57.1%20和为%20S%20的两个数字.md) +- [57.2 和为 S 的连续正数序列](notes/57.2%20和为%20S%20的连续正数序列.md) +- [58.1 翻转单词顺序列](notes/58.1%20翻转单词顺序列.md) +- [58.2 左旋转字符串](notes/58.2%20左旋转字符串.md) +- [59. 滑动窗口的最大值](notes/59.%20滑动窗口的最大值.md) +- [60. n 个骰子的点数](notes/60.%20n%20个骰子的点数.md) +- [61. 扑克牌顺子](notes/61.%20扑克牌顺子.md) +- [62. 圆圈中最后剩下的数](notes/62.%20圆圈中最后剩下的数.md) +- [63. 股票的最大利润](notes/63.%20股票的最大利润.md) +- [64. 求 1+2+3+...+n](notes/64.%20求%201+2+3+...+n.md) +- [65. 不用加减乘除做加法](notes/65.%20不用加减乘除做加法.md) +- [66. 构建乘积数组](notes/66.%20构建乘积数组.md) +- [67. 把字符串转换成整数](notes/67.%20把字符串转换成整数.md) +- [68. 树中两个节点的最低公共祖先](notes/68.%20树中两个节点的最低公共祖先.md) # 参考文献