Skip to content

Latest commit

 

History

350 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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为本仓库, 被介绍的仓库称为此仓库。

此仓库由@Blankj于2017年4月18日创建, 不定期更新优质Java代码和题解,颇受好评,至今已有star数3521颗(star数量以仓库原址为准)。截止本仓库建立为止, 此仓库已累计拥有63题已AC的Java代码。

来源2: @Wang-YS的leetcode

此仓库由@Wang-YS于2018年2月28日创建,不定期更新优质JavaScript代码,属于个人练习项目。截止本仓库建立为止, 此仓库已累计拥有33题已AC的JavaScript代码。

此仓库由@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代码、文档整理及库维护规范。

Releases

Packages

Used by

Contributors

Languages