LeetCode-Solution
本仓库为LeetCode练习题题解记录,会持续更新各种语言的题解。同时也欢迎使用各种语言的同♂好们加入此项目,为开源贡献力量。
LeetCode is the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews.
如果想知道各大公司 LeetCode 面试题,可以参看 Companies.md。
附上@Blankj的镇楼诗:
明有科举八股,今有 LeetCode。
八股定格式而取文采心意,LeetCode 定题目且重答案背诵。
美其名曰:”practice makes perfect.”
为何今不如古?
非也非也,
科举为国取士,LeetCode 为 Google 筛码工,各取所需也。
目录
题解汇总
库维护须知
请大家遵守规范,勤加维护。对规范有异议可以提出意见,经过讨论,并落地合理的规范。
注: 为方便阐述规范,以下内容以“使用Java语言解答第001题-Two Sum”为例进行说明。
本仓库的起源
为避免误解,以下称RichCodersAndMe/LeetCode-Solution为本仓库, 被介绍的仓库称为此仓库。
来源1: @Blankj的awsome-java-leetcode
此仓库由@Blankj于2017年4月18日创建, 不定期更新优质Java代码和题解,颇受好评,至今已有star数3521颗(star数量以仓库原址为准)。截止本仓库建立为止, 此仓库已累计拥有63题已AC的Java代码。
来源2: @Wang-YS的leetcode
此仓库由@Wang-YS于2018年2月28日创建,不定期更新优质JavaScript代码,属于个人练习项目。截止本仓库建立为止, 此仓库已累计拥有33题已AC的JavaScript代码。
来源3 @CodeAntStudio的LeetCode-Solution
此仓库由@Mukyu、@Taryn、@WangXin于2018年3月31日创建,由@Mukyu提供Java题解,@Taryn提供JavaScript题解,@WangXin提供kotlin题解,属于刚刚萌生想法的而创建的新仓库。截止本仓库建立为止, 此仓库已累计拥有5题已AC的Java代码、2题已AC的JavaScript代码、3题已AC的kotlin代码。
文档编写规范
举例说明:
当提交首页表格未收录的题目时:
- 1 需提交对应解题代码->
./src/_001/Solution.java
- 2 对应的题目题解markdown文件(此文件填写规范参看题解模板)->
./tips/001/README.md
- 3 在首页
README.md
对应的位置添加记录- 3.1 根据题目难度(Easy、Medium、Hard),在对应的表格内的对应位置(根据题号排序)添加行
- 3.2 添加原题地址(001-question: https://leetcode.com/problems/two-sum)
- 3.3 添加题解地址 (001-tips: ./tips/001/README.md)
- 3.4 添加原题对应的Tags(就是在原题网页偏右下位置的
Related Topics
) - 3.5 添加代码地址 (001-java: ./src/_001/Solution.java)
(注: 同名的kotlin与Java类在同一个目录下会冲突,故kotlin放在更深一层的kotlin
文件夹中:./src/_001/kotlin/Solution.kt
)
总而言之三步走: 代码、题解、首页README.md
commit信息提交规范
feat:提交新的AC代码
fix:修补bug
docs:文档修改
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
基本可以按照上述情况对号入座, 还是不明白的参看历史提交记录(git log
)。
commit前先pull, 尽量避免产生不必要的git分叉.
commit信息模板: feat: add the solution of `Two Sum`(001) with Java
添加新语言代码
目前已使用的代码有: Java
、JavaScript
、kotlin
添加新的语言的解题代码, 请按字母序排列,在对应列添加解题代码且附链接,文档编写相关细节参看commit信息提交规范。
其他问题
1 同题的同种语言的代码如何处理?
建议保留一份即可(优先保留高效代码), 如果有更好/值得一说的思路,可以在题解中体现。 如果非要保留自己的代码, 请遵守以下规则:
- 首页README.md优先使用最优解的代码链接,认为最优解可以进一步优化或有更好的解法时,可通过提Issue的方式进行讨论和决定。
- 如果同语言代码思路不同可以在题解文档内阐述思路,若思路相同,则不再赘述。
- 文件名则改为:
Solution1.java
、Solution2.java
、Solution3.java
,以此类推。
2 未完善的题解
目前存在大量未完善的题解, 原因是@Wang-YS大佬的原仓库没有写题解,只有已AC的js代码。 大概分散在561~804题。那个啥,大家努力完善吧。
贡献者名单
排名不分先后