该仓库是自己整理的一个题单和题解列表,题单来自 代码随想录,推荐大家先去网站一刷,此列表主要是为了方便二刷和三刷的小伙伴们,省去在页面里回来切换页面的麻烦,同时每道题目后面附带了我在学习时记录的题解,最后整理这个仓库也花费了不少时间和精力,如果对大家有帮助不要忘记给个 Star 吖,谢谢!
仓库说明:
-
题解中的代码实现语言是 C++,尽量保证每道题目使用「最优」的写法。对于初学的小伙伴不需要过于纠结语言的问题,重点学习优秀的算法实现思想,然后再用自己熟悉的语言进行实现。
关于「最优」体现以下两个方面:
-
时间复杂度,在满足题目要求的基础上尽可能满足进阶时间复杂度。
-
代码书写度,对于一道题目有很多种实现方式,尽量使用最简洁的一种实现方式。
-
-
题解是自己学习过程中认真写的,并非搬运,主要记录题目的算法核心实现步骤。
目前已有题单:
TODO:
- 代码随想录题单
- LeetCode Hot 100 题单
- 为每个题单添加传送门,从算法标签到转到文档具体位置。
- 剑指 Offer 题单
- 排序算法总结(内部排序、外部排序)
- AcWing 算法基础课
- 牛客网面试必刷 TOP 101 题单
- CodeTop Hot 100 题单
- 算法模板整理
Tips:
- 按住
Ctrl
点击链接可以在新标签页打开,提升效率利器!
持续更新中... 你的 Star 是我更新的最大动力!
- 704. 二分查找 「题解」
- 35. 搜索插入位置 「题解」
- 34. 在排序数组中查找元素的第一个和最后一个位置 「题解」
- 69. x 的平方根 「题解」
- 367. 有效的完全平方数 「题解」
- 27. 移除元素 「题解」
- 26. 删除有序数组中的重复项 「题解」
- 283. 移动零 「题解」
- 844. 比较含退格的字符串 「题解」
- 977. 有序数组的平方 「题解」
- 209. 长度最小的子数组 「题解」
- 904. 水果成篮 「题解」
- 76. 最小覆盖子串「题解」
- 54. 螺旋矩阵 「题解」
- 59. 螺旋矩阵 II 「题解」
- 203. 移除链表元素 「题解」
- 707. 设计链表 「题解」
- 206. 反转链表 「题解」
- 24. 两两交换链表中的节点 「题解」
- 19. 删除链表的倒数第 N 个结点 「题解」
- 面试题 02.07. 链表相交 「题解」
- 142. 环形链表 II 「题解」
- 141. 环形链表 「题解」
- 242. 有效的字母异位词 「题解」
- 383. 赎金信 「题解」
- 49. 字母异位词分组「题解」
- 438. 找到字符串中所有字母异位词 「题解」
- 349. 两个数组的交集 「题解」
- 350. 两个数组的交集 II 「题解」
- 202. 快乐数 「题解」
- 1. 两数之和 「题解」
- 454. 四数相加 II 「题解」
- 15. 三数之和 「题解」
- 18. 四数之和 「题解」
- 344. 反转字符串 「题解」
- 541. 反转字符串 II 「题解」
- 剑指 Offer 05. 替换空格 「题解」
- 151. 翻转字符串里的单词 「题解」
- 剑指 Offer 58 - II. 左旋转字符串 「题解」
- 28. 实现 strStr() 「题解」
- 459. 重复的子字符串 「题解」
- 27. 移除元素 「题解」
- 26. 删除有序数组中的重复项 「题解」
- 283. 移动零 「题解」
- 844. 比较含退格的字符串 「题解」
- 977. 有序数组的平方 「题解」
- 344. 反转字符串 「题解」
- 剑指 Offer 05. 替换空格 「题解」
- 151. 翻转字符串里的单词 「题解」
- 206. 反转链表 「题解」
- 19. 删除链表的倒数第 N 个结点 「题解」
- 面试题 02.07. 链表相交 「题解」
- 142. 环形链表 II 「题解」
- 141. 环形链表 「题解」
- 15. 三数之和 「题解」
- 18. 四数之和 「题解」
- 232. 用栈实现队列 「题解」
- 225. 用队列实现栈 「题解」
- 20. 有效的括号 「题解」
- 1047. 删除字符串中的所有相邻重复项 「题解」
- 150. 逆波兰表达式求值 「题解」
- 239. 滑动窗口最大值 「题解」
- 347. 前 K 个高频元素 「题解」
- 144. 二叉树的前序遍历「题解」
- 589. N 叉树的前序遍历「题解」
- 145. 二叉树的后序遍历「题解」
- 590. N 叉树的后序遍历「题解」
- 94. 二叉树的中序遍历「题解」
- 102. 二叉树的层序遍历「题解」
- 107. 二叉树的层序遍历 II「题解」
- 429. N 叉树的层序遍历「题解」
- 199. 二叉树的右视图「题解」
- 637. 二叉树的层平均值「题解」
- 515. 在每个树行中找最大值「题解」
- 116. 填充每个节点的下一个右侧节点指针「题解」
- 117. 填充每个节点的下一个右侧节点指针 II「题解」
- 104. 二叉树的最大深度「题解」
- 559. N 叉树的最大深度「题解」
- 111. 二叉树的最小深度「题解」
- 226. 翻转二叉树「题解」
- 101. 对称二叉树「题解」
- 100. 相同的树「题解」
- 572. 另一棵树的子树「题解」
- 222. 完全二叉树的节点个数「题解」
- 110. 平衡二叉树「题解」
- 257. 二叉树的所有路径「题解」
- 404. 左叶子之和「题解」
- 513. 找树左下角的值「题解」
- 112. 路径总和「题解」
- 134. 加油站「题解」
- 968. 监控二叉树「题解」「TODO」
- 509. 斐波那契数 「题解」
- 70. 爬楼梯 「题解」
- 746. 使用最小花费爬楼梯 「题解」
- 62. 不同路径「题解」
- 63. 不同路径 II「题解」
- 343. 整数拆分「题解」
- 96. 不同的二叉搜索树「题解」
- 416. 分割等和子集「题解」
- 1049. 最后一块石头的重量 II「题解」
- 494. 目标和「题解」
- 474. 一和零「题解」
- 518. 零钱兑换 II「题解」
- 377. 组合总和 Ⅳ「题解」
- 322. 零钱兑换「题解」
- 279. 完全平方数「题解」
- 139. 单词拆分「题解」
- 121. 买卖股票的最佳时机「题解」
- 122. 买卖股票的最佳时机 II「题解」
- 123. 买卖股票的最佳时机 III「题解」
- 188. 买卖股票的最佳时机 IV「题解」
- 309. 最佳买卖股票时机含冷冻期「题解」
- 714. 买卖股票的最佳时机含手续费「题解」
- 300. 最长递增子序列「题解」
- 674. 最长连续递增序列「题解」
- 718. 最长重复子数组「题解」
- 1143. 最长公共子序列「题解」
- 1035. 不相交的线「题解」
- 53. 最大子数组和「题解」
- 392. 判断子序列「题解」
- 115. 不同的子序列「题解」
- 583. 两个字符串的删除操作「题解」
- 72. 编辑距离「题解」
- 647. 回文子串「题解」
- 516. 最长回文子序列「题解」
- 5. 最长回文子串「题解」