Sitelet https://web.archive.org/web/20200817015511/https://github.com/RichCodersAndMe/LeetCode-Solution
Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

LeetCode-SolutionLeetCode-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 JavaScript kotlin
001 Two Sum Easy ✅ ✅ ✅
002 Add Two Numbers Medium ✅ ✅
003 Longest Substring Without Repeating Characters Medium ✅ ✅
004 Median of Two Sorted Arrays Hard ✅ ✅
005 Longest Palindromic Substring Medium ✅
006 ZigZag Conversion Medium ✅
007 Reverse Integer Easy ✅ ✅ ✅
008 String to Integer (atoi) Medium ✅
009 Palindrome Number Easy ✅ ✅ ✅
010 Regular Expression Matching Hard ✅
011 Container With Most Water Medium ✅
012 Integer to Roman Medium ✅
013 Roman to Integer Easy ✅ ✅ ✅
014 Longest Common Prefix Easy ✅ ✅ ✅
015 3Sum Medium ✅
016 3Sum Closest Medium ✅
017 Letter Combinations of a Phone Number Medium ✅
018 4Sum Medium ✅
019 Remove Nth Node From End of List Medium ✅
020 Valid Parentheses Easy ✅ ✅ ✅
021 Merge Two Sorted Lists Easy ✅ ✅ ✅
022 Generate Parentheses Medium ✅
023 Merge k Sorted Lists Hard ✅
024 Swap Nodes in Pairs Medium ✅
025 Reverse Nodes in k-Group Hard ✅
026 Remove Duplicates from Sorted Array Easy ✅ ✅ ✅
027 Remove Element Easy ✅ ✅ ✅
028 Implement strStr() Easy ✅ ✅ ✅
029 Divide Two Integers Medium ✅
030 Substring with Concatenation of All Words Hard ✅
033 Search in Rotated Sorted Array Medium ✅
035 Search Insert Position Easy ✅ ✅ ✅
038 Count and Say Easy ✅ ✅ ✅
043 Multiply Strings Medium ✅
044 Wildcard Matching Hard ✅
049 Group Anagrams Medium ✅
050 Pow(x, n) Medium ✅
053 Maximum Subarray Easy ✅ ✅ ✅
056 Merge Intervals Medium ✅
057 Insert Interval Hard ✅
058 Length of Last Word Easy ✅ ✅ ✅
066 Plus One Easy ✅ ✅ ✅
067 Add Binary Easy ✅ ✅ ✅
068 Text Justification Hard ✅
069 Sqrt(x) Easy ✅ ✅ ✅
070 Climbing Stairs Easy ✅ ✅ ✅
083 Remove Duplicates from Sorted List Easy ✅ ✅ ✅
088 Merge Sorted Array Easy ✅ ✅ ✅
100 Same Tree Easy ✅ ✅ ✅
101 Symmetric Tree Easy ✅ ✅ ✅
104 Maximum Depth of Binary Tree Easy ✅ ✅ ✅
107 Binary Tree Level Order Traversal II Easy ✅ ✅ ✅
108 Convert Sorted Array to Binary Search Tree Easy ✅ ✅ ✅
110 Balanced Binary Tree Easy ✅ ✅ ✅
111 Minimum Depth of Binary Tree Easy ✅ ✅ ✅
112 Path Sum Easy ✅ ✅ ✅
118 Pascal's Triangle Easy ✅ ✅ ✅
119 Pascal's Triangle II Easy ✅ ✅ ✅
121 Best Time to Buy and Sell Stock Easy ✅ ✅ ✅
122 Best Time to Buy and Sell Stock II Easy ✅ ✅ ✅
125 Valid Palindrome Easy ✅ ✅
136 Single Number Easy ✅ ✅
141 Linked List Cycle Easy ✅ -
155 Min Stack Easy ✅ ✅ ✅
160 Intersection of Two Linked Lists Easy ✅ -
167 Two Sum II - Input array is sorted Easy ✅ -
168 Excel Sheet Column Title Easy ✅ -
169 Majority Element Easy ✅ -
171 excel-sheet-column-number Easy ✅ -
226 Invert Binary Tree Easy ✅ ✅ ✅
504 Base 7 Easy ✅
543 Diameter of Binary Tree Easy ✅ ✅
554 Brick Wall Medium ✅
561 Array Partition I Easy ✅ ✅
643 Maximum Average Subarray I Easy ✅ ✅
645 Set Mismatch Easy ✅ ✅
653 Two Sum IV - Input is a BST Easy ✅ ✅
657 Judge Route Circle Easy ✅ ✅
661 Image Smoother Easy ✅ ✅
665 Non-decreasing Array Easy ✅ ✅
669 Trim a Binary Search Tree Easy ✅ ✅
671 Second Minimum Node In a Binary Tree Easy ✅ ✅
674 Longest Continuous Increasing Subsequence Easy ✅ ✅
680 Valid Palindrome II Easy ✅ ✅
682 Baseball Game Easy ✅ ✅
686 Repeated String Match Easy ✅ ✅
687 Longest Univalue Path Easy ✅ ✅
693 Binary Number with Alternating Bits Easy ✅ ✅
695 Max Area of Island Easy ✅ ✅
696 Count Binary Substrings Easy ✅ ✅
697 Degree of an Array Easy ✅ ✅
717 1-bit and 2-bit Characters Easy ✅ ✅
720 Longest Word in Dictionary Easy ✅ ✅
724 Find Pivot Index Easy ✅ ✅
728 Self Dividing Numbers Easy ✅ ✅
733 Flood Fill Easy ✅ ✅
744 Find Smallest Letter Greater Than Target Easy ✅ ✅
746 Min Cost Climbing Stairs Easy ✅ ✅
747 Largest Number At Least Twice of Others Easy ✅ ✅
762 Prime Number of Set Bits in Binary Representation Easy ✅ ✅
766 Toeplitz Matrix Easy ✅ ✅
771 Jewels and Stones Easy ✅ ✅ ✅
783 Minimum Distance Between BST Nodes Easy ✅ ✅
784 Letter Case Permutation Easy ✅
788 Rotated Digits Easy ✅
796 Rotate String Easy ✅
804 Unique Morse Code Words Easy ✅
806 Number of Lines To Write String Easy ✅

库维护须知

请大家遵守规范,勤加维护。对规范有异议可以提出意见,经过讨论,并落地合理的规范。

注: 为方便阐述规范,以下内容以“使用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题。那个啥,大家努力完善吧。

贡献者名单

排名不分先后

  • 感谢@Mukyu, 提供Java题解。
  • 感谢@Taryn, 提供JavaScript题解。
  • 感谢@Wang-YS, 提供JavaScrip代码。
  • 感谢@Blankj, 提供Java题解、镇楼诗及文档编写规范。
  • 感谢@WangXin, 提供kotlin代码、文档整理及库维护规范。
You can’t perform that action at this time.