☰
第一次给 leetcode 开源仓库提 PR:翻译、题解与每日一题的完整贡献指南
2026/10/26 1:48:40 网站建设 项目流程

第一次给 leetcode 开源仓库提 PR:翻译、题解与每日一题的完整贡献指南

【免费下载链接】leetcodeLeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。)项目地址: https://gitcode.com/gh_mirrors/le/leetcode

这就是 leetcode 开源仓库,里面收录了经典题目解析、数据结构与算法专题总结、anki 卡片、每日一题活动记录和未来的计划。你想交的第一份贡献不管是翻译、新题解还是一期每日一题,本文按"认路 → 选题 → 产出 → 配图 → 自检"的顺序,把目录、模板和提交规则一次性讲清楚。

一、先认路:仓库五个目录的分工

动笔之前花几分钟把目录职责看清楚,后面每一步都会用到:

目录职责命名习惯
problems/经典题解,一题一个文件题号+题名,如1014.best-sightseeing-pair.md
thinkings/数据结构与算法专题总结如 回溯、动态规划、前缀树
daily/每日一题活动记录按日期命名,如 2019-06-03.md
templates/官方提交模板题解模板 与 每日一题模板
assets/配套素材problems/放题解配图、drawio/放 draw.io 源文件、daily/放每日一题图片

再记住一条全仓库通用的规矩:中英双版本靠文件名区分——中文版叫abc.md,对应的英文版就叫abc.en.md。这条约定贯穿所有目录,翻译章节会用到它。

本地动手前先把仓库克隆下来:

git clone https://gitcode.com/gh_mirrors/le/leetcode

二、三种贡献方式,先选对再动手

🧭 入口一共三个,工作量和流程各不相同:

  • 翻译文档:找一篇没有译文的文档写出英文版。动作最轻,适合第一次贡献,但要先走 issue 认领,防止和他人撞车;
  • 新增题解:内容贡献的主体,按模板写problems/下的文件、更新 README 链接,必要时附带图片或 drawio 源文件;
  • 每日一题:源自交流群(微信、QQ)的集体刷题活动,题目先在 issue 里讨论,认领后整理成按日期命名的文档,沉淀进daily/。

拿不准就从翻译入手:它不要求你解新题,只需要读懂已有内容并写出流畅的英文。

三、翻译一篇文档:从中文到 abc.en.md

怎么认领

去仓库的 issue 列表翻一翻,找出还没有译文的文档,提交一个新 issue声明认领,然后再开工。认领这一步的意义就一个:别让两个人同时翻译同一篇。

文件怎么命名

以中文题解 1014.best-sightseeing-pair.md 为例,它的英文版文件应当命名为1014.best-sightseeing-pair.en.md。仓库里已有大量中英双版本题解,比如 25.reverse-nodes-in-k-groups.md 和 25.reverse-nodes-in-k-groups-en.md,可以直接当命名参照。

质量上守住的三条线

  1. 人工翻译,不走机器。目标是译文读得顺、意思准,机翻那种生硬感过不了审;
  2. 算法名词保留原文,"binary search"、"dynamic programming" 这类词不需要译成中文;
  3. 优先意译。中文版贡献规范 CONTRIBUTING.md 特意强调了这一点:别逐字硬翻,让译文符合英文的表达习惯。

四、题解先读成品:1014 最佳观光组合拆解

📖 与其先背规则,不如先看一篇成品长什么样。problems/1014.best-sightseeing-pair.md 和模板文件同名,章节依次是:

题目地址 → 题目描述 → 前置知识(动态规划)→ 公司(阿里、字节)→ 思路 → 关键点解析 → 代码 → 小技巧

"思路"一节值得细读,它的叙事是层层递进的:先甩出暴力双循环O(N²)版本,说明为什么稳超时;再引入动态规划,用dp[i]表示数组前 i 项中A[i] + i的最大值;最后观察到dp[i+1]只依赖dp[i],于是拿单个变量pre顶掉整个 dp 数组,完成空间优化。文末还有"小技巧"补充——Python 里用if-else代替max()可能更快——并给出复杂度:时间 O(N),空间 O(N)。

"暴力 → 动态规划 → 空间优化"这条进阶线,是仓库里大量高质量题解的共同骨架,写自己的题解时可以照这个节奏来。

五、题解怎么写:七要素速查与文件清单

模板七要素 + 三项可选

题解模板 规定了必写内容,对照着填就行:

  1. 题目地址:替换成你实际做的题号与名称;
  2. 题目描述:完整摘录题目要求与示例;
  3. 前置知识:读者需要先具备的算法或数据结构;
  4. 公司:这道题常出现在哪些公司的面试里,如阿里、字节;
  5. 思路:核心解法,讲明白"为什么这样解";
  6. 关键点:难点与亮点,比如"空间换时间"、"dp 空间优化";
  7. 代码:完整可运行的实现,多语言更好。

另有扩展、相关题目、参考三节可选。还有一条硬性纪律:不要新增和"思路"意思重叠的章节名。你想加"想法"之类的标签,直接改成"思路"——全仓库 200 多道题解就是靠这条纪律保持结构一致的。

一次 PR 要交齐哪些文件

一份题解提交由四部分组成:

  1. 题解 markdown 本体,放进problems/,结构跟随模板;
  2. 在 README.md 里加上新题解的链接,位置要按难度和题目序号插到对应处;
  3. 英文题解的话,README.en.md 里也加一条链接(可选项,但推荐做);
  4. 画了图就一并附上 draw.io 文件(XML)或图片(可选项,面向复杂题目的图解)。

代码块与多语言约定

  • 代码块必须显式声明语言,标准写法如下:
// C++ Code
# Python Code
// JavaScript Code
// Java Code

细节提醒:模板里的 Java 示例误用了js标记,实际提交时请按语言如实标成java。

  • 给了多语言实现,就在代码前声明语言版本。参考 78.subsets.md,它开头写明"语言支持:JS,C++,Java,Python",随后四种语言依次展开。
  • 多语言版本的思路必须一致,必要时命名也统一;不过命名规范可以遵循各语言最佳实践——Python 用 snake_case、JS 用 camelCase。
  • 中文题解要附力扣中国的题目链接与题目描述;英文题解同样要给出对应链接和英文描述。
  • 复杂题目必须配图,放法见下一节。

六、每日一题:认领、tag 与模板

🗓️ 每日一题的完整生命周期是:issue 讨论 → 认领 → 整理成日期文档 → 合并进仓库。

认领的八步流程

daily/README.md 的"综合认领区"列出了所有待认领题目的状态,认领按下面八步走:

  1. 进认领区看哪些题目还挂在"待领取"上;
  2. 挑一道你感兴趣的;
  3. 到对应 issue 下留言"认领";
  4. 维护者把卡片从"待领取"挪到"进行中",并把你设为解决者;
  5. 开始整理,格式照 每日一题模板 来,题目描述和优秀答案都可以从 issue 讨论里收集;
  6. 整理完提交 PR;
  7. 维护者合并后,卡片从"进行中"移入"已合并";
  8. 你正式成为项目的贡献者。

tag 怎么写才合规

模板里的tag允许写多个,用逗号分隔,而且必须是枚举值,候选项有 array、dp、math 等,取值范围参考 LeetCode 官方 tag。daily/README.md 的历史记录能看到真实用法,例如tag: 'trie' 'binary search'、tag: 'Array' 'Two Pointers'、tag: 'DP' 'Bit'。提 issue 时别忘给题目打上正确的 tag。

模板四大块,再看 2019-06-03 这期成品

模板 固定包含这些部分:

  • 标题:每日一题 - 题目名;
  • 信息卡片:时间、题目链接、tag、题目描述;
  • 参考答案:思路讲明白并给出代码,语言不限,复杂逻辑可以上图;
  • 扩展:放延伸引申内容,答案可省;
  • 其他优秀解答:收录群成员的好思路,也可以请本人来写。

拿真实完成的 daily/2019-06-03.md(Longest Common Prefix)对照:信息卡片写清了时间、LeetCode 题目链接,tag 是trie与binary search两个;"参考答案"拆成二分法和trie 树两条线——二分法代码标了时间 O(n*logm)、空间 O(1) 的注释,trie 树解法则直接引用 208. 实现前缀树 的实现代码当参考思路;"其他优秀解答"目前标记"暂无",留给后续贡献者补。"一题多解 + 挂接专题知识"这种组织方式质量很高,值得模仿。

顺带一提:每日一题相关的图片统一存assets/daily/,涉及 drawio 则存assets/drawio/。

七、配图规范:图片与 drawio 各放哪

🖼️ 规范允许用图片或 draw.io 文件辅助讲解,素材仓库也划了固定位置:

素材类型存放位置命名或示例
题解配图assets/problems/与题解同名,如1014.best-sightseeing-pair.png
每日一题图片assets/daily/按日期相关命名存放
draw.io 源文件assets/drawio/如11.container-with-most-water.drawio、208.implement-trie-prefix-tree.drawio

绘图工具,模板推荐 excalidraw 在线白板、draw.io、processon,甚至 iPad 上的画图应用,随你选。硬性要求只有一条:复杂题目必须配图,帮读者直观理解。从assets/drawio/目录能看到,11、121、122、125、200、208 这些题都留有.drawio源文件,也就是说"题解 + 图解源文件"双提交是仓库鼓励的做法。

八、提交前五项自检:PR 自检清单

✅ 提 PR 之前把这五项过一遍,全勾上再点提交:

  • 题解七项齐了吗:题目地址、题目描述、前置知识、公司、思路、关键点、代码?
  • 每个代码块都标了语言?有没有和"思路"撞车的章节名(比如"想法")?
  • README.md 的新题解链接加了吗?英文题解是否同步改了 README.en.md?
  • 图片、drawio 源文件放进assets/的对应子目录了吗?
  • 每日一题的信息卡片里,时间、链接、tag 三样齐了吗?

九、三种贡献方式一览表

| 贡献类型 | 认领方式 | 核心产出 | 关键规范

【免费下载链接】leetcodeLeetCode Solutions: A Record of My Problem Solving Journey.( leetcode题解,记录自己的leetcode解题之路。)项目地址: https://gitcode.com/gh_mirrors/le/leetcode

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询