Skip to content

PythonYXY/leetcode

Repository files navigation

Introduction

本书主要记录了一些我在刷leetcode过程中碰到的一些个人认为比较经典题目的思路和题解。

之前在刷leetcode的过程中,发现很多题目做过就忘掉了,再次碰到类似的甚至是相同的题目是依然感觉无从下手。其实这往往是因为对于题目没有理解,掌握透。因此在之后的刷题过程中,刻意放慢了脚步,每做完一道题,都去主动思考这种算法的时空复杂度是多少,是否还有更优的解法,能否做到举一反三等。

章节的编排形式参考了leetcode的题型分类,例如二叉树,字符串以及链表等。题目以middle难度居多,同时含有少量的easy题以及极少量的hard题。题目没有特定的顺序,纯粹按照了自己的做题顺序来编排。最后一章主要是《剑指offer》上的题目,其中有一部分题目是与之前章节重合的。

目前只有Java语言的实现,后续考虑会加入Javascript以及Go语言的实现。但是鉴于个人有限的精力和时间,也可能不会实施......

如果有任何问题和意见欢迎在Issue区提出。

Author

PythonYXY

Content

  • Introduction

  • 二分查找

    • [287. 寻找重复数](二分查找/287. 寻找重复数.md)
    • [154. 寻找旋转排序数组中的最小值 II](二分查找/154. 寻找旋转排序数组中的最小值 II.md)
    • [300. 最长上升子序列](二分查找/300. 最长上升子序列.md)
    • [69. X的平方根](二分查找/69. X的平方根.md)
    • [354. 俄罗斯套娃信封问题](二分查找/354. 俄罗斯套娃信封问题.md)
    • [153. 寻找旋转排序数组中的最小值](二分查找/153. 寻找旋转排序数组中的最小值.md)
  • 线性表

    • [560. 和为K的子数组](线性表/560. 和为K的子数组.md)
    • [15. 三数之和](线性表/15. 三数之和.md)
    • [523 连续子数组和](线性表/523 连续子数组和.md)
    • [215. 数组中的第K个最大元素](线性表/215. 数组中的第K个最大元素.md)
    • [209. 长度最小的子数组](线性表/209. 长度最小的子数组.md)
    • [4. 寻找两个有序数组的中位数](线性表/4. 寻找两个有序数组的中位数.md)
    • [41. 缺失的第一个正数](线性表/41. 缺失的第一个正数.md)
  • 链表

    • [430. 扁平化多级双向链表](链表/430. 扁平化多级双向链表.md)
    • [138. 复制带随机指针的链表](链表/138. 复制带随机指针的链表.md)
    • [142. 环形链表 II](链表/142. 环形链表 II.md)
    • [460. LFU缓存](链表/460. LFU缓存.md)
    • [86. 分隔链表](链表/86. 分隔链表.md)
    • [109. 有序链表转换二叉搜索树](链表/109. 有序链表转换二叉搜索树.md)
    • [206. 反转链表](链表/206. 反转链表.md)
    • [25. K 个一组翻转链表难度困难](链表/25. K 个一组翻转链表难度困难.md)
    • [92. 反转链表 II](链表/92. 反转链表 II.md)
    • [23. 合并K个排序链表](链表/23. 合并K个排序链表.md)
    • [143. 重排链表](链表/143. 重排链表.md)
  • 二叉树

    • [145. 二叉树的后序遍历](二叉树/145. 二叉树的后序遍历.md)
    • [307. 区域和检索 - 数组可修改](二叉树/307. 区域和检索 - 数组可修改.md)
    • [173. 二叉搜索树迭代器](二叉树/173. 二叉搜索树迭代器.md)
    • [230. 二叉搜索树中第K小的元素](二叉树/230. 二叉搜索树中第K小的元素.md)
    • [95. 不同的二叉搜索树 II](二叉树/95. 不同的二叉搜索树 II.md)
    • [110. 平衡二叉树](二叉树/110. 平衡二叉树.md)
    • [114. 二叉树展开为链表](二叉树/114. 二叉树展开为链表.md)
    • [99. 恢复二叉搜索树](二叉树/99. 恢复二叉搜索树.md)
    • [113. 路径总和 II](二叉树/113. 路径总和 II.md)
    • [96. 不同的二叉搜索树](二叉树/96. 不同的二叉搜索树.md)
    • [129. 求根到叶子节点数字之和](二叉树/129. 求根到叶子节点数字之和.md)
    • [144. 二叉树的前序遍历](二叉树/144. 二叉树的前序遍历.md)
    • [117. 填充每个节点的下一个右侧节点指针 II](二叉树/117. 填充每个节点的下一个右侧节点指针 II.md)
    • [236. 二叉树的最近公共祖先](二叉树/236. 二叉树的最近公共祖先.md)
  • 搜索

    • [240. 搜索二维矩阵 II](搜索/240. 搜索二维矩阵 II.md)
    • [127. 单词接龙](搜索/127. 单词接龙.md)
    • [130. 被围绕的区域](搜索/130. 被围绕的区域.md)
  • 字符串

    • [438. 找到字符串中所有字母异位词](字符串/438. 找到字符串中所有字母异位词.md)
    • [76. 最小覆盖子串](字符串/76. 最小覆盖子串.md)
    • [44. 通配符匹配](字符串/44. 通配符匹配.md)
    • [28. 实现 strStr](字符串/28. 实现 strStr.md)
    • [5. 最长回文子串](字符串/5. 最长回文子串.md)
    • [1143. 最长公共子序列](字符串/1143. 最长公共子序列.md)
    • [10. 正则表达式匹配](字符串/10. 正则表达式匹配.md)
    • [522. 最长特殊序列 II](字符串/522. 最长特殊序列 II.md)
    • [796. 旋转字符串](字符串/796. 旋转字符串.md)
    • [459. 重复的子字符串](字符串/459. 重复的子字符串.md)
    • [72. 编辑距离](字符串/72. 编辑距离.md)
    • [3. 无重复字符的最长子串](字符串/3. 无重复字符的最长子串.md)
  • 动态规划

    • [131. 分割回文串](动态规划/131. 分割回文串.md)
    • [97. 交错字符串](动态规划/97. 交错字符串.md)
    • [188. 买卖股票的最佳时机 IV](动态规划/188. 买卖股票的最佳时机 IV.md)
    • [122. 买卖股票的最佳时机 II](动态规划/122. 买卖股票的最佳时机 II.md)
    • [132. 分割回文串 II](动态规划/132. 分割回文串 II.md)
    • [152. 乘积最大子序列](动态规划/152. 乘积最大子序列.md)
    • [87. 扰乱字符串](动态规划/87. 扰乱字符串.md)
    • [714. 买卖股票的最佳时机含手续费](动态规划/714. 买卖股票的最佳时机含手续费.md)
    • [121. 买卖股票的最佳时机](动态规划/121. 买卖股票的最佳时机.md)
    • [85. 最大矩形](动态规划/85. 最大矩形.md)
    • [120. 三角形最小路径和](动态规划/120. 三角形最小路径和.md)
    • [174. 地下城游戏](动态规划/174. 地下城游戏.md)
    • [140. 单词拆分 II](动态规划/140. 单词拆分 II.md)
    • [123. 买卖股票的最佳时机 III](动态规划/123. 买卖股票的最佳时机 III.md)
    • [940. 不同的子序列 II](动态规划/940. 不同的子序列 II.md)
    • [139. 单词拆分](动态规划/139. 单词拆分.md)
    • [309. 最佳买卖股票时机含冷冻期](动态规划/309. 最佳买卖股票时机含冷冻期.md)
    • [91. 解码方法](动态规划/91. 解码方法.md)
    • [115. 不同的子序列](动态规划/115. 不同的子序列.md)
    • [337. 打家劫舍 III](动态规划/337. 打家劫舍 III.md)
  • 数论

    • [264. 丑数 II](数论/264. 丑数 II.md)
    • [347. 前 K 个高频元素](数论/347. 前 K 个高频元素.md)
    • [355. 设计推特](数论/355. 设计推特.md)
    • [166. 分数到小数](数论/166. 分数到小数.md)
    • [373. 查找和最小的K对数字](数论/373. 查找和最小的K对数字.md)
    • [202. 快乐数](数论/202. 快乐数.md)
    • [172. 阶乘后的零](数论/172. 阶乘后的零.md)
    • [313. 超级丑数](数论/313. 超级丑数.md)
    • [292. Nim 游戏](数论/292. Nim 游戏.md)
  • 位运算

    • [89. 格雷编码](位运算/89. 格雷编码.md)
    • [201. 数字范围按位与](位运算/201. 数字范围按位与.md)
    • [52. N皇后 II](位运算/52. N皇后 II.md)
    • [51. N皇后](位运算/51. N皇后.md)
    • [1275. 找出井字棋的获胜者](位运算/1275. 找出井字棋的获胜者.md)
    • [137. 只出现一次的数字 II](位运算/137. 只出现一次的数字 II.md)
    • [187. 重复的DNA序列](位运算/187. 重复的DNA序列.md)
    • [136. 只出现一次的数字](位运算/136. 只出现一次的数字.md)
  • 剑指offer
    • [46. 把数字翻译成字符串](剑指offer/46. 把数字翻译成字符串.md)
    • [28. 对称的二叉树](剑指offer/28. 对称的二叉树.md)
    • 4.二维数组中的查找
    • [L191. 位1的个数](剑指offer/L191. 位1的个数.md)
    • [43. 1~n整数中1出现的次数](剑指offer/43. 1~n整数中1出现的次数.md)
    • [L153. 寻找旋转排序数组中的最小值](剑指offer/L153. 寻找旋转排序数组中的最小值.md)
    • [29. 顺时针打印矩阵](剑指offer/29. 顺时针打印矩阵.md)
    • [45. 把数组排成最小的数](剑指offer/45. 把数组排成最小的数.md)
    • [36. 二叉搜索树与双向链表](剑指offer/36. 二叉搜索树与双向链表.md)
    • [48. 最长不含重复字符的子字符串](剑指offer/48. 最长不含重复字符的子字符串.md)
    • 24.反转链表
    • [35. 复杂链表的复制](剑指offer/35. 复杂链表的复制.md)
    • [30. 包含min函数的栈](剑指offer/30. 包含min函数的栈.md)
    • [26. 树的子结构](剑指offer/26. 树的子结构.md)
    • [32 - II. 从上到下打印二叉树 II](剑指offer/32 - II. 从上到下打印二叉树 II.md)
    • [22. 链表中倒数第k个节点](剑指offer/22. 链表中倒数第k个节点.md)
    • [49. 丑数](剑指offer/49. 丑数.md)
    • [19. 正则表达式匹配](剑指offer/19. 正则表达式匹配.md)
    • [39. 数组中出现次数超过一半的数字](剑指offer/39. 数组中出现次数超过一半的数字.md)
    • 20.表示数值的字符串
    • [14. 剪梯子](剑指offer/14. 剪梯子.md)
    • [L154. 寻找旋转排序数组中的最小值 II](剑指offer/L154. 寻找旋转排序数组中的最小值 II.md)
    • [9. 用两个栈实现队列](剑指offer/9. 用两个栈实现队列.md)
    • [44. 数字序列中某一位的数字](剑指offer/44. 数字序列中某一位的数字.md)
    • [40. 最小的k个数](剑指offer/40. 最小的k个数.md)
    • [3. 数组中的重复数字](剑指offer/3. 数组中的重复数字.md)
    • [L287. 寻找重复数](剑指offer/L287. 寻找重复数.md)
    • [32 - III. 从上到下打印二叉树 III](剑指offer/32 - III. 从上到下打印二叉树 III.md)
    • [31. 栈的压入、弹出序列](剑指offer/31. 栈的压入、弹出序列.md)
    • [15. 二进制中1的个数](剑指offer/15. 二进制中1的个数.md)
    • [33. 二叉搜索树的后序遍历序列](剑指offer/33. 二叉搜索树的后序遍历序列.md)
    • [41. 数据流中的中位数](剑指offer/41. 数据流中的中位数.md)
    • 8.二叉树的下一个节点

About

Leetcode & 剑指offer 部分题解

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy