Table of Contents generated with DocToc
Algorithms notes & code & leetcode solution by Node.js.
- 堆/栈
- 链表
- 映射
- 散列
- 二叉树
- 图
- No.01
EasyTwo Sum - No.02
MediumAdd Two Numbers - No.03
MediumLongest Substring Without Repeating Characters - No.04
HardMedian of Two Sorted Arrays - No.05
MediumLongest Palindromic Substring - No.06
MediumZigZag Conversion - No.07
EasyReverse Integer - No.08
MediumString to Integer (atoi) - No.09
EasyPalindrome Number - No.10
HardRegular Expression Matching - No.11
MediumContainer With Most Water - No.12
MediumInteger to Roman - No.13
EasyRoman to Integer - No.14
EasyLongest Common Prefix - No.15
Medium3Sum - No.16
Medium3Sum Closest - No.17
MediumLetter Combinations of a Phone Number - No.18
Medium4Sum - No.19
MediumRemove Nth Node From End of List - No.20
EasyValid Parentheses - No.21
EasyMerge Two Sorted Lists - No.22
MediumGenerate Parentheses - No.23
HardMerge k Sorted Lists - No.24
MediumSwap Nodes in Pairs - No.25
HardReverse Nodes in k-Group - No.26
EasyRemove Duplicates from Sorted Array - No.27
EasyRemove Element - No.28
EasyImplement strStr() - No.29
MediumDivide Two Integers - No.30
HardSubstring with Concatenation of All Words - No.31
MediumNext Permutation - No.32
HardLongest Valid Parentheses - No.33
MediumSearch in Rotated Sorted Array - No.34
MediumSearch for a Range - No.35
EasySearch Insert Position - No.36
MediumValid Sudoku - No.37
HardSudoku Solver - No.38
EasyCount and Say - No.39
MediumCombination Sum - No.40
MediumCombination Sum II - No.41
HardFirst Missing Positive - No.42
HardTrapping Rain Water - No.43
MediumMultiply Strings - No.45
HardJump Game II - No.46
MediumPermutations - No.47
MediumPermutations II - No.48
MediumRotate Image - No.49
MediumGroup Anagrams - No.50
MediumPow(x, n) - No.51
HardN-Queens - No.52
HardN-Queens II - No.53
EasyMaximum Subarray - No.54
MediumSpiral Matrix - No.55
MediumJump Game - No.56
MediumMerge Intervals - No.57
HardInsert Interval - No.58
EasyLength of Last Word - No.59
MediumSpiral Matrix II - No.60
MediumPermutation Sequence - No.61
MediumRotate List - No.62
MediumUnique Paths - No.63
MediumUnique Paths II - No.64
MediumMinimum Path Sum - No.66
EasyPlus One - No.67
EasyAdd Binary - No.69
EasySqrt(x) - No.70
EasyClimbing Stairs - No.71
MediumSimplify Path - No.73
MediumSet Matrix Zeroes - No.74
MediumSearch a 2D Matrix - No.75
MediumSort Colors - No.76
HardMinimum Window Substring - No.77
MediumCombinations - No.78
MediumSubsets - No.79
MediumWord Search - No.80
MediumRemove Duplicates from Sorted Array II - No.81
MediumSearch in Rotated Sorted Array II - No.82
MediumRemove Duplicates from Sorted List II - No.83
EasyRemove Duplicates from Sorted List - No.84
HardLargest Rectangle in Histogram - No.85
HardMaximal Rectangle - No.86
MediumPartition List - No.87
HardScramble String - No.88
EasyMerge Sorted Array - No.90
MediumSubsets II - No.91
MediumDecode Ways - No.92
MediumReverse Linked List II - No.93
MediumRestore IP Addresses - No.94
MediumBinary Tree Inorder Traversal - No.95
MediumUnique Binary Search Trees II - No.96
MediumUnique Binary Search Trees - No.97
HardInterleaving String - No.98
MediumValidate Binary Search Tree - No.99
HardRecover Binary Search Tree - No.100
EasySame Tree - No.101
EasySymmetric Tree - No.102
MediumBinary Tree Level Order Traversal - No.103
MediumBinary Tree Zigzag Level Order Traversal - No.104
EasyMaximum Depth of Binary Tree - No.105
MediumConstruct Binary Tree from Preorder and Inorder Traversal - No.106
MediumConstruct Binary Tree from Inorder and Postorder Traversal - No.107
EasyBinary Tree Level Order Traversal II - No.108
EasyConvert Sorted Array to Binary Search Tree - No.109
MediumConvert Sorted List to Binary Search Tree - No.110
EasyBalanced Binary Tree - No.111
EasyMinimum Depth of Binary Tree - No.112
EasyPath Sum - No.113
MediumPath Sum II - No.114
MediumFlatten Binary Tree to Linked List - No.116
MediumPopulating Next Right Pointers in Each Node - No.117
MediumPopulating Next Right Pointers in Each Node II - No.118
EasyPascal's Triangle - No.119
EasyPascal's Triangle II - No.120
MediumTriangle - No.121
EasyBest Time to Buy and Sell Stock - No.122
EasyBest Time to Buy and Sell Stock II - No.123
HardBest Time to Buy and Sell Stock III - No.124
HardBinary Tree Maximum Path Sum - No.125
EasyValid Palindrome - No.126
HardWord Ladder II - No.127
MediumWord Ladder - No.128
HardLongest Consecutive Sequence - No.129
MediumSum Root to Leaf Numbers - No.130
MediumSurrounded Regions - No.131
MediumPalindrome Partitioning - No.132
HardPalindrome Partitioning II - No.133
MediumClone Graph - No.134
MediumGas Station - No.135
HardCandy - No.136
EasySingle Number - No.137
MediumSingle Number II - No.138
MediumCopy List with Random Pointer - No.139
MediumWord Break - No.140
HardWord Break II - No.141
EasyLinked List Cycle - No.142
MediumLinked List Cycle II - No.143
MediumReorder List - No.144
MediumBinary Tree Preorder Traversal - No.145
HardBinary Tree Postorder Traversal - No.146
HardLRU Cache - No.147
MediumInsertion Sort List - No.148
MediumSort List - No.150
MediumEvaluate Reverse Polish Notation - No.151
MediumReverse Words in a String - No.152
MediumMaximum Product Subarray - No.153
MediumFind Minimum in Rotated Sorted Array - No.154
HardFind Minimum in Rotated Sorted Array II - No.155
EasyMin Stack - No.160
EasyIntersection of Two Linked Lists - No.162
MediumFind Peak Element - No.164
HardMaximum Gap - No.165
MediumCompare Version Numbers - No.166
MediumFraction to Recurring Decimal - No.167
EasyTwo Sum II - Input array is sorted - No.168
EasyExcel Sheet Column Title - No.169
EasyMajority Element - No.171
EasyExcel Sheet Column Number - No.172
EasyFactorial Trailing Zeroes - No.173
MediumBinary Search Tree Iterator - No.174
HardDungeon Game - No.175
EasyCombine Two Tables - No.179
MediumLargest Number - No.187
MediumRepeated DNA Sequences - No.188
HardBest Time to Buy and Sell Stock IV - No.189
EasyRotate Array - No.204
EasyCount Primes - No.206
EasyReverse Linked List - No.208
MediumImplement Trie (Prefix Tree) - No.209
MediumMinimum Size Subarray Sum - No.211
MediumAdd and Search Word - Data structure design - No.212
HardWord Search II - No.215
MediumKth Largest Element in an Array - No.217
EasyContains Duplicate - No.219
EasyContains Duplicate II - No.220
MediumContains Duplicate III - No.225
EasyImplement Stack using Queues - No.229
MediumMajority Element II - No.230
MediumKth Smallest Element in a BST - No.231
EasyPower of Two - No.232
EasyImplement Queue using Stacks - No.234
EasyPalindrome Linked List - No.240
MediumSearch a 2D Matrix II - No.260
MediumSingle Number III - No.263
EasyUgly Number - No.264
MediumUgly Number II - No.268
EasyMissing Number - No.274
MediumH-Index - No.275
MediumH-Index II - No.278
EasyFirst Bad Version - No.279
MediumPerfect Squares - No.283
EasyMove Zeroes - No.287
MediumFind the Duplicate Number - No.344
EasyReverse String - No.347
MediumTop K Frequent Elements - No.349
EasyIntersection of Two Arrays - No.350
EasyIntersection of Two Arrays II - No.363
HardMax Sum of Rectangle No Larger Than K - No.367
EasyValid Perfect Square - No.376
MediumWiggle Subsequence - No.380
MediumInsert Delete GetRandom O(1) - No.387
EasyFirst Unique Character in a String - No.389
EasyFind the Difference - No.409
EasyLongest Palindrome - No.442
EasyFind All Duplicates in an Array - No.445
MediumAdd Two Numbers II - No.448
EasyFind All Numbers Disappeared in an Array - No.451
MediumSort Characters By Frequency - No.454
Medium4Sum II - No.460
HardLFU Cache - No.486
MediumPredict the Winner - No.523
MediumContinuous Subarray Sum - No.530
EasyMinimum Absolute Difference in BST - No.541
EasyReverse String II - No.560
MediumSubarray Sum Equals K - No.599
EasyMinimum Index Sum of Two Lists - No.621
MediumTask Scheduler - No.633
EasySum of Square Numbers - No.653
EasyTwo Sum IV - Input is a BST - No.658
MediumFind K Closest Elements - No.659
MediumSplit Array into Consecutive Subsequences - No.680
EasyValid Palindrome II - No.718
MediumMaximum Length of Repeated Subarray
- No.01
EasyTwo Sum - No.02
MediumAdd Two Numbers - No.03
MediumLongest Substring Without Repeating Characters - No.04
HardMedian of Two Sorted Arrays - No.05
MediumLongest Palindromic Substring - No.06
MediumZigZag Conversion - No.07
EasyReverse Integer - No.08
MediumString to Integer (atoi) - No.09
EasyPalindrome Number - No.10
HardRegular Expression Matching - No.11
MediumContainer With Most Water - No.12
MediumInteger to Roman
对于 JavaScript:
- 环境要求:>= Node.js v7
- 如果 Node 版本较低,则可以自行选择使用 Babel 进行转换
- Leetcode 题解代码直接在浏览器中即可运行(ES5/ES6 语法)
- 直接运行各个文件夹下的
js文件即可查看算法运行的结果,例如在项目根目录下node ./priority-queues/binary-heaps.js
对于 Swift:
- Swift 版本 >= 4.0