Skip to content

Latest commit

 

History

History
662 lines (625 loc) · 41.5 KB

README.md

File metadata and controls

662 lines (625 loc) · 41.5 KB

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-YSleetcode

此仓库@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

添加新语言代码

目前已使用的代码有: JavaJavaScriptkotlin 添加新的语言的解题代码, 请按字母序排列,在对应列添加解题代码且附链接,文档编写相关细节参看commit信息提交规范

其他问题

1 同题的同种语言的代码如何处理?

建议保留一份即可(优先保留高效代码), 如果有更好/值得一说的思路,可以在题解中体现。 如果非要保留自己的代码, 请遵守以下规则:

  • 首页README.md优先使用最优解的代码链接,认为最优解可以进一步优化或有更好的解法时,可通过提Issue的方式进行讨论和决定。
  • 如果同语言代码思路不同可以在题解文档内阐述思路,若思路相同,则不再赘述。
  • 文件名则改为: Solution1.javaSolution2.javaSolution3.java,以此类推。

2 未完善的题解

目前存在大量未完善的题解, 原因是@Wang-YS大佬的原仓库没有写题解,只有已AC的js代码。 大概分散在561~804题。那个啥,大家努力完善吧。

贡献者名单

排名不分先后

  • 感谢@Mukyu, 提供Java题解。
  • 感谢@Taryn, 提供JavaScript题解。
  • 感谢@Wang-YS, 提供JavaScrip代码。
  • 感谢@Blankj, 提供Java题解、镇楼诗文档编写规范
  • 感谢@WangXin, 提供kotlin代码、文档整理库维护规范