Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 

Repository files navigation

Hot100 刷题骨架

这个项目用于按专题刷 LeetCode Hot 100。 仓库地址:https://yukinoshitasherry.github.io/Leetcode/ (每次都看一遍这个仓库)

核心目标是:

  • 每做一道题,先看对应的 README.md
  • README.md 里先把题意、思路、推导、代码讲透
  • 然后我再自己新建 .ipy 文件手写一遍
  • 最后我自己根据题目示例做手动测试

推荐流程

  1. 先阅读对应题目的 README.md
  2. 理解题意、思路、边界条件和复杂度
  3. 在对应目录下自己新建一个 .ipy 文件手写代码
  4. 按原题示例自己做手动测试

目录约定

每道题都放在对应的专题下面,并且每道题使用独立文件夹。

专题/
└── 哈希/
    └── 001-两数之和/
        └── README.md

后续统一按这个格式扩展,例如:

  • 专题/双指针/015-三数之和/README.md
  • 专题/滑动窗口/003-无重复字符的最长子串/README.md
  • 专题/二叉树/102-二叉树的层序遍历/README.md

统一约束

从第 1 题开始,后续所有题目都要和 专题/哈希/001-两数之和/README.md 保持同一套风格和结构。

1. 目录结构约束

  • 每道题必须放在对应专题下
  • 每道题必须使用独立文件夹
  • 文件夹命名统一为:题号-题目名
  • 每道题文件夹内至少包含一个 README.md
  • .ipy 文件用于我自己练习手写,不要求预先创建,也不是本项目当前阶段必须提交的内容

2. README 内容约束

每道题的 README.md 都必须尽量保持和第一题一致,至少包含下面这些部分,并且顺序尽量一致:

  1. 题号 + 题目名
  2. 所属专题
  3. 题目描述
  4. 原题示例
  5. 题意理解
  6. 最直接的想法 / 暴力思路
  7. 优化思路 / 正解思路
  8. 用示例手推过程
  9. 为什么这样写
  10. 算法步骤
  11. 复杂度分析
  12. Python 参考实现(带非常详细的注释)
  13. 常见错误
  14. 适合自己默写的精简版本
  15. 一句话总结

3. 写作风格约束

  • 文档是给“做题之前先阅读”用的,不是只放一个答案
  • 解题思路要写得详细,不能只写结论
  • 要把“为什么这样想”讲出来,而不只是“最后这样写”
  • 代码部分要有非常详细的注释,方便读完后自己默写
  • 尽量用清晰、直白、适合复习的中文表达
  • 如果有关键细节、易错点、边界情况,要明确单独写出来

4. 示例约束

  • README 中的示例优先使用原题自带示例
  • 示例要按原题写清楚输入、输出、解释
  • 不需要额外补自动化测试
  • 也不需要在 README 中写测试代码
  • 当前阶段只负责整理题解与示例,测试由我自己在 .ipy 中完成

5. 代码约束

  • 参考代码统一使用 Python
  • 代码要可直接作为题解参考
  • 注释要足够详细,适合看完后自己独立重写
  • 同时保留一个“适合默写”的精简版本,方便二次练习

6. 后续新增题目时的执行规则

后续新增任何一道题时,都默认遵守下面规则:

  • 先确定它属于哪个专题
  • 在对应专题下新建 题号-题目名 文件夹
  • 在该文件夹下写 README.md
  • README 的结构、详细程度、代码注释风格,统一参照第一题
  • 除非我单独提出要求,否则不额外写测试文件
  • 除非我单独提出要求,否则不偏离这一套模板

当前基准题目

  • 基准样例:专题/哈希/001-两数之和/README.md
  • 后续所有题解默认对齐这一题的组织方式和详略程度

当前进度

  • 已完成:001-两数之和
  • 已完成:002-两数相加
  • 已完成:003-无重复字符的最长子串
  • 已完成:011-盛最多水的容器
  • 已完成:015-三数之和
  • 已完成:020-有效的括号
  • 已完成:021-合并两个有序链表
  • 已完成:031-下一个排列
  • 已完成:034-在排序数组中查找元素的第一个和最后一个位置
  • 已完成:043-字符串相乘
  • 已完成:046-全排列
  • 已完成:057-插入区间
  • 已完成:071-简化路径
  • 已完成:090-子集 II
  • 已完成:094-二叉树的中序遍历
  • 已完成:098-验证二叉搜索树
  • 已完成:103-二叉树的锯齿形层序遍历
  • 已完成:124-二叉树中的最大路径和
  • 已完成:151-反转字符串中的单词
  • 已完成:160-相交链表
  • 已完成:215-数组中的第K个最大元素
  • 已完成:238-除自身以外数组的乘积
  • 已完成:260-只出现一次的数字 III
  • 已完成:448-找到所有数组中消失的数字
  • 后续继续在对应专题下新增题目文件夹即可

About

leetcode-hot100 纯手打!!!零添加!!!

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages