Skip to content

✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% / LeetCode 题解

License

Notifications You must be signed in to change notification settings

netboy/LeetCode-Go

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode by Go

[LeetCode Online Judge] (https://leetcode.com/) is a website containing many algorithm questions. Most of them are real interview questions of Google, Facebook, LinkedIn, Apple, etc. This repo shows my solutions by Go with the code style strictly follows the Google Golang Style Guide. Please feel free to reference and STAR to support this repo, thank you!

Data Structures

标识了 ✅ 的专题是完成所有题目了的,没有标识的是还没有做完所有题目的

数据结构 变种 相关题目
顺序线性表:向量
单链表 1.双链表
2.静态链表
3.对称矩阵
4.稀疏矩阵
广义栈
队列 1.链表实现
2.循环数组实现
3.双端队列
字符串 1.KMP算法
2.有限状态自动机
3.模式匹配有限状态自动机
4.BM模式匹配算法
5.BM-KMP算法
1.二叉树
2.并查集
3.Huffman数
数组实现的堆 1.极大堆和极小堆
2.极大极小堆
3.双端堆
4.d叉堆
树实现的堆 1.左堆
2.扁堆
3.二项式堆
4.斐波那契堆
5.配对堆
查找 1.哈希表
2.跳跃表
3.排序二叉树
4.AVL树
5.B树
6.AA树
7.红黑树
8.排序二叉堆
9.Splay树
10.双链树
11.Trie树

算法

一. 目录

# Title Solution Acceptance Difficulty Frequency
0001 Two Sum Go 44.30% Easy
0002 Add Two Numbers Go 31.30% Medium
0003 Longest Substring Without Repeating Characters Go 28.50% Medium
0004 Median of Two Sorted Arrays Go 26.60% Hard
0005 Longest Palindromic Substring 27.50% Medium
0006 ZigZag Conversion 32.20% Medium
0007 Reverse Integer Go 25.40% Easy
0008 String to Integer (atoi) 14.70% Medium
0009 Palindrome Number 43.70% Easy
0010 Regular Expression Matching 25.40% Hard
0011 Container With Most Water Go 45.10% Medium
0012 Integer to Roman 51.30% Medium
0013 Roman to Integer 52.60% Easy
0014 Longest Common Prefix 33.70% Easy
0015 3Sum Go 24.20% Medium
0016 3Sum Closest Go 45.80% Medium
0017 Letter Combinations of a Phone Number Go 41.90% Medium
0018 4Sum Go 30.80% Medium
0019 Remove Nth Node From End of List Go 34.30% Medium
0020 Valid Parentheses Go 36.70% Easy
0021 Merge Two Sorted Lists Go 47.70% Easy
0022 Generate Parentheses Go 55.50% Medium
0023 Merge k Sorted Lists Go 34.90% Hard
0024 Swap Nodes in Pairs Go 45.10% Medium
0025 Reverse Nodes in k-Group Go 36.80% Hard
0026 Remove Duplicates from Sorted Array Go 41.00% Easy
0027 Remove Element Go 44.80% Easy
0028 Implement strStr() Go 32.20% Easy
0029 Divide Two Integers Go 16.10% Medium
0030 Substring with Concatenation of All Words Go(是否还有更优解) 23.70% Hard
0031 Next Permutation 30.60% Medium
0032 Longest Valid Parentheses 25.70% Hard
0033 Search in Rotated Sorted Array Go 33.00% Medium
0034 Find First and Last Position of Element in Sorted Array Go 33.70% Medium
0035 Search Insert Position 40.90% Easy
0036 Valid Sudoku Go 43.50% Medium
0037 Sudoku Solver Go 37.40% Hard
0038 Count and Say 40.80% Easy
0039 Combination Sum Go 49.10% Medium
0040 Combination Sum II Go 42.10% Medium
0041 First Missing Positive Go 29.10% Hard
0042 Trapping Rain Water Go 43.50% Hard
0043 Multiply Strings 30.90% Medium
0044 Wildcard Matching 23.00% Hard
0045 Jump Game II 28.20% Hard
0046 Permutations Go 55.70% Medium
0047 Permutations II Go 40.90% Medium
0048 Rotate Image Go 49.00% Medium
0049 Group Anagrams Go 47.40% Medium
0050 Pow(x, n) Go 28.10% Medium
0051 N-Queens Go 39.80% Hard
0052 N-Queens II Go 52.40% Hard
0053 Maximum Subarray Go 43.80% Easy
0054 Spiral Matrix Go 30.70% Medium
0055 Jump Game 32.10% Medium
0056 Merge Intervals Go 35.90% Medium
0057 Insert Interval Go 31.40% Hard
0058 Length of Last Word 32.30% Easy
0059 Spiral Matrix II Go 47.00% Medium
0060 Permutation Sequence Go 33.40% Medium
0061 Rotate List Go 27.30% Medium
0062 Unique Paths Go 48.00% Medium
0063 Unique Paths II Go 33.50% Medium
0064 Minimum Path Sum Go 47.30% Medium
0065 Valid Number 14.10% Hard
0066 Plus One Go 41.40% Easy
0067 Add Binary 39.50% Easy
0068 Text Justification 23.50% Hard
0069 Sqrt(x) Go 31.50% Easy
0070 Climbing Stairs Go 44.40% Easy
0071 Simplify Path Go 29.00% Medium
0072 Edit Distance 38.20% Hard
0073 Set Matrix Zeroes 40.10% Medium
0074 Search a 2D Matrix 35.00% Medium
0075 Sort Colors Go 42.40% Medium
0076 Minimum Window Substring Go 31.10% Hard
0077 Combinations Go 48.20% Medium
0078 Subsets Go 53.40% Medium
0079 Word Search Go 31.50% Medium
0080 Remove Duplicates from Sorted Array II Go 40.60% Medium
0081 Search in Rotated Sorted Array II 32.70% Medium
0082 Remove Duplicates from Sorted List II Go 33.30% Medium
0083 Remove Duplicates from Sorted List Go 42.80% Easy
0084 Largest Rectangle in Histogram Go 31.40% Hard
0085 Maximal Rectangle 33.60% Hard
0086 Partition List Go 37.60% Medium
0087 Scramble String 31.70% Hard
0088 Merge Sorted Array Go 36.00% Easy
0089 Gray Code Go 46.00% Medium
0090 Subsets II Go 42.70% Medium
0091 Decode Ways Go 22.50% Medium
0092 Reverse Linked List II Go 35.20% Medium
0093 Restore IP Addresses Go 31.70% Medium
0094 Binary Tree Inorder Traversal Go 57.10% Medium
0095 Unique Binary Search Trees II Go 36.00% Medium
0096 Unique Binary Search Trees Go 46.60% Medium
0097 Interleaving String 28.20% Hard
0098 Validate Binary Search Tree Go 25.90% Medium
0099 Recover Binary Search Tree Go 34.90% Hard
0100 Same Tree Go 50.20% Easy
0101 Symmetric Tree Go 43.70% Easy
0102 Binary Tree Level Order Traversal Go 48.90% Medium
0103 Binary Tree Zigzag Level Order Traversal Go 42.10% Medium
0104 Maximum Depth of Binary Tree Go 60.90% Easy
0105 Construct Binary Tree from Preorder and Inorder Traversal Go 41.60% Medium
0106 Construct Binary Tree from Inorder and Postorder Traversal Go 39.70% Medium
0107 Binary Tree Level Order Traversal II Go 47.20% Easy
0108 Convert Sorted Array to Binary Search Tree Go 51.20% Easy
0109 Convert Sorted List to Binary Search Tree Go 41.20% Medium
0110 Balanced Binary Tree Go 41.20% Easy
0111 Minimum Depth of Binary Tree Go 35.40% Easy
0112 Path Sum Go 38.00% Easy
0113 Path Sum II Go 41.00% Medium
0114 Flatten Binary Tree to Linked List Go 42.80% Medium
0115 Distinct Subsequences 35.20% Hard
0116 Populating Next Right Pointers in Each Node 38.20% Medium
0117 Populating Next Right Pointers in Each Node II 34.70% Medium
0118 Pascal's Triangle 46.50% Easy
0119 Pascal's Triangle II 44.00% Easy
0120 Triangle Go 39.70% Medium
0121 Best Time to Buy and Sell Stock Go 47.50% Easy
0122 Best Time to Buy and Sell Stock II Go 52.20% Easy
0123 Best Time to Buy and Sell Stock III 33.90% Hard
0124 Binary Tree Maximum Path Sum Go 30.20% Hard
0125 Valid Palindrome Go 31.40% Easy
0126 Word Ladder II Go 18.00% Hard
0127 Word Ladder Go 24.40% Medium
0128 Longest Consecutive Sequence Go 41.90% Hard
0129 Sum Root to Leaf Numbers Go 42.80% Medium
0130 Surrounded Regions Go 23.10% Medium
0131 Palindrome Partitioning Go 41.30% Medium
0132 Palindrome Partitioning II 27.60% Hard
0133 Clone Graph 27.00% Medium
0134 Gas Station 34.10% Medium
0135 Candy 28.60% Hard
0136 Single Number Go 60.50% Easy
0137 Single Number II Go 46.20% Medium
0138 Copy List with Random Pointer 27.50% Medium
0139 Word Break 35.60% Medium
0140 Word Break II 27.50% Hard
0141 Linked List Cycle Go 37.20% Easy
0142 Linked List Cycle II Go 32.40% Medium
0143 Reorder List Go 31.20% Medium
0144 Binary Tree Preorder Traversal Go 51.70% Medium
0145 Binary Tree Postorder Traversal Go 48.90% Hard
0146 LRU Cache 25.90% Medium
0147 Insertion Sort List Go 37.60% Medium
0148 Sort List Go 35.80% Medium
0149 Max Points on a Line 15.80% Hard
0150 Evaluate Reverse Polish Notation Go 32.50% Medium
0151 Reverse Words in a String 17.00% Medium
0152 Maximum Product Subarray Go 29.40% Medium
0153 Find Minimum in Rotated Sorted Array 43.10% Medium
0154 Find Minimum in Rotated Sorted Array II 39.40% Hard
0155 Min Stack Go 37.50% Easy
0156 Binary Tree Upside Down 51.10% Medium
0157 Read N Characters Given Read4 29.70% Easy
0158 Read N Characters Given Read4 II - Call multiple times 26.60% Hard
0159 Longest Substring with At Most Two Distinct Characters 47.20% Hard
0160 Intersection of Two Linked Lists Go 34.30% Easy
0161 One Edit Distance 31.70% Medium
0162 Find Peak Element 41.40% Medium
0163 Missing Ranges 23.30% Medium
0164 Maximum Gap Go 32.70% Hard
0165 Compare Version Numbers 23.80% Medium
0166 Fraction to Recurring Decimal 19.60% Medium
0167 Two Sum II - Input array is sorted Go 50.60% Easy
0168 Excel Sheet Column Title 29.10% Easy
0169 Majority Element Go 53.00% Easy
0170 Two Sum III - Data structure design 30.60% Easy
0171 Excel Sheet Column Number 51.70% Easy
0172 Factorial Trailing Zeroes Go 37.40% Easy
0173 Binary Search Tree Iterator Go 49.00% Medium
0174 Dungeon Game 27.30% Hard
0175 Combine Two Tables 52.40% Easy
0176 Second Highest Salary 27.50% Easy
0177 Nth Highest Salary 26.60% Medium
0178 Rank Scores 37.10% Medium
0179 Largest Number Go 26.00% Medium
0180 Consecutive Numbers 34.00% Medium
0181 Employees Earning More Than Their Managers 48.90% Easy
0182 Duplicate Emails 55.20% Easy
0183 Customers Who Never Order 45.40% Easy
0184 Department Highest Salary 29.40% Medium
0185 Department Top Three Salaries 26.50% Hard
0186 Reverse Words in a String II 38.10% Medium
0187 Repeated DNA Sequences Go 36.30% Medium
0188 Best Time to Buy and Sell Stock IV 26.40% Hard
0189 Rotate Array 30.50% Easy
0190 Reverse Bits Go 31.70% Easy
0191 Number of 1 Bits Go 43.60% Easy
0192 Word Frequency 26.80% Medium
0193 Valid Phone Numbers 25.20% Easy
0194 Transpose File 22.90% Medium
0195 Tenth Line 33.90% Easy
0196 Delete Duplicate Emails 33.40% Easy
0197 Rising Temperature 35.10% Easy
0198 House Robber Go 41.10% Easy
0199 Binary Tree Right Side View Go 48.30% Medium
0200 Number of Islands Go 41.90% Medium
0201 Bitwise AND of Numbers Range Go 36.10% Medium
0202 Happy Number Go 45.60% Easy
0203 Remove Linked List Elements Go 35.90% Easy
0204 Count Primes Go 29.20% Easy
0205 Isomorphic Strings Go 37.60% Easy
0206 Reverse Linked List Go 55.30% Easy
0207 Course Schedule Go 38.20% Medium
0208 Implement Trie (Prefix Tree) Go 39.00% Medium
0209 Minimum Size Subarray Sum Go 35.10% Medium
0210 Course Schedule II Go 35.20% Medium
0211 Add and Search Word - Data structure design Go 30.70% Medium
0212 Word Search II Go 29.00% Hard
0213 House Robber II Go 35.40% Medium
0214 Shortest Palindrome 27.70% Hard
0215 Kth Largest Element in an Array Go 48.30% Medium
0216 Combination Sum III Go 51.90% Medium
0217 Contains Duplicate Go 52.30% Easy
0218 The Skyline Problem Go 31.80% Hard
0219 Contains Duplicate II Go 35.50% Easy
0220 Contains Duplicate III Go 19.80% Medium
0221 Maximal Square 33.30% Medium
0222 Count Complete Tree Nodes Go 34.40% Medium
0223 Rectangle Area 36.00% Medium
0224 Basic Calculator Go 33.00% Hard
0225 Implement Stack using Queues Go 39.60% Easy
0226 Invert Binary Tree Go 58.50% Easy
0227 Basic Calculator II 33.70% Medium
0228 Summary Ranges 36.20% Medium
0229 Majority Element II Go 32.30% Medium
0230 Kth Smallest Element in a BST Go 51.90% Medium
0231 Power of Two Go 42.10% Easy
0232 Implement Queue using Stacks Go 43.70% Easy
0233 Number of Digit One 30.30% Hard
0234 Palindrome Linked List Go 36.30% Easy
0235 Lowest Common Ancestor of a Binary Search Tree Go 45.10% Easy
0236 Lowest Common Ancestor of a Binary Tree Go 37.90% Medium
0237 Delete Node in a Linked List Go 54.00% Easy
0238 Product of Array Except Self 55.40% Medium
0239 Sliding Window Maximum Go 38.40% Hard
0240 Search a 2D Matrix II 41.00% Medium
0241 Different Ways to Add Parentheses 50.30% Medium
0242 Valid Anagram Go 52.50% Easy
0243 Shortest Word Distance 57.60% Easy
0244 Shortest Word Distance II 47.60% Medium
0245 Shortest Word Distance III 53.60% Medium
0246 Strobogrammatic Number 42.40% Easy
0247 Strobogrammatic Number II 44.60% Medium
0248 Strobogrammatic Number III 36.70% Hard
0249 Group Shifted Strings 49.10% Medium
0250 Count Univalue Subtrees 49.10% Medium
0251 Flatten 2D Vector 43.90% Medium
0252 Meeting Rooms 52.30% Easy
0253 Meeting Rooms II 43.10% Medium
0254 Factor Combinations 44.50% Medium
0255 Verify Preorder Sequence in Binary Search Tree 43.70% Medium
0256 Paint House 49.10% Easy
0257 Binary Tree Paths Go 46.30% Easy
0258 Add Digits 54.30% Easy
0259 3Sum Smaller 45.10% Medium
0260 Single Number III Go 57.30% Medium
0261 Graph Valid Tree 40.00% Medium
0262 Trips and Users 25.40% Hard
0263 Ugly Number Go 40.70% Easy
0264 Ugly Number II 36.60% Medium
0265 Paint House II 41.70% Hard
0266 Palindrome Permutation 60.20% Easy
0267 Palindrome Permutation II 33.90% Medium
0268 Missing Number Go 48.60% Easy
0269 Alien Dictionary 31.30% Hard
0270 Closest Binary Search Tree Value 44.00% Easy
0271 Encode and Decode Strings 27.00% Medium
0272 Closest Binary Search Tree Value II 45.40% Hard
0273 Integer to English Words 24.50% Hard
0274 H-Index Go 34.70% Medium
0275 H-Index II 35.50% Medium
0276 Paint Fence 36.60% Easy
0277 Find the Celebrity 37.10% Medium
0278 First Bad Version 30.30% Easy
0279 Perfect Squares 42.30% Medium
0280 Wiggle Sort 61.20% Medium
0281 Zigzag Iterator 56.10% Medium
0282 Expression Add Operators 32.90% Hard
0283 Move Zeroes Go 54.50% Easy
0284 Peeking Iterator 40.90% Medium
0285 Inorder Successor in BST 35.10% Medium
0286 Walls and Gates 49.80% Medium
0287 Find the Duplicate Number Go 50.00% Medium
0288 Unique Word Abbreviation 20.10% Medium
0289 Game of Life 45.90% Medium
0290 Word Pattern Go 35.20% Easy
0291 Word Pattern II 41.10% Hard
0292 Nim Game 55.70% Easy
0293 Flip Game 59.00% Easy
0294 Flip Game II 48.40% Medium
0295 Find Median from Data Stream 37.10% Hard
0296 Best Meeting Point 55.00% Hard
0297 Serialize and Deserialize Binary Tree 41.30% Hard
0298 Binary Tree Longest Consecutive Sequence 44.20% Medium
0299 Bulls and Cows 39.70% Medium
0300 Longest Increasing Subsequence Go 41.00% Medium
0301 Remove Invalid Parentheses 39.50% Hard
0302 Smallest Rectangle Enclosing Black Pixels 49.40% Hard
0303 Range Sum Query - Immutable Go 38.40% Easy
0304 Range Sum Query 2D - Immutable 32.70% Medium
0305 Number of Islands II 41.70% Hard
0306 Additive Number Go 28.40% Medium
0307 Range Sum Query - Mutable Go 29.00% Medium
0308 Range Sum Query 2D - Mutable 32.20% Hard
0309 Best Time to Buy and Sell Stock with Cooldown Go 44.20% Medium
0310 Minimum Height Trees 30.30% Medium
0311 Sparse Matrix Multiplication 56.70% Medium
0312 Burst Balloons 47.50% Hard
0313 Super Ugly Number 41.70% Medium
0314 Binary Tree Vertical Order Traversal 41.20% Medium
0315 Count of Smaller Numbers After Self Go 38.40% Hard
0316 Remove Duplicate Letters 32.80% Hard
0317 Shortest Distance from All Buildings 38.10% Hard
0318 Maximum Product of Word Lengths Go 48.70% Medium
0319 Bulb Switcher 44.00% Medium
0320 Generalized Abbreviation 48.90% Medium
0321 Create Maximum Number 25.50% Hard
0322 Coin Change Go 30.80% Medium
0323 Number of Connected Components in an Undirected Graph 52.30% Medium
0324 Wiggle Sort II Go 28.10% Medium
0325 Maximum Size Subarray Sum Equals k 44.80% Medium
0326 Power of Three Go 41.70% Easy
0327 Count of Range Sum Go 32.90% Hard
0328 Odd Even Linked List Go 49.50% Medium
0329 Longest Increasing Path in a Matrix Go 40.30% Hard
0330 Patching Array 33.40% Hard
0331 Verify Preorder Serialization of a Binary Tree Go 38.80% Medium
0332 Reconstruct Itinerary 31.70% Medium
0333 Largest BST Subtree 33.20% Medium
0334 Increasing Triplet Subsequence 39.60% Medium
0335 Self Crossing 27.00% Hard
0336 Palindrome Pairs 31.10% Hard
0337 House Robber III 48.30% Medium
0338 Counting Bits Go 64.90% Medium
0339 Nested List Weight Sum 68.50% Easy
0340 Longest Substring with At Most K Distinct Characters 40.00% Hard
0341 Flatten Nested List Iterator 48.20% Medium
0342 Power of Four Go 40.40% Easy
0343 Integer Break Go 48.00% Medium
0344 Reverse String Go 63.50% Easy
0345 Reverse Vowels of a String Go 41.70% Easy
0346 Moving Average from Data Stream 66.50% Easy
0347 Top K Frequent Elements Go 55.30% Medium
0348 Design Tic-Tac-Toe 50.00% Medium
0349 Intersection of Two Arrays Go 55.10% Easy
0350 Intersection of Two Arrays II Go 48.10% Easy
0351 Android Unlock Patterns 46.00% Medium
0352 Data Stream as Disjoint Intervals 43.70% Hard
0353 Design Snake Game 30.80% Medium
0354 Russian Doll Envelopes Go 34.10% Hard
0355 Design Twitter 27.50% Medium
0356 Line Reflection 30.90% Medium
0357 Count Numbers with Unique Digits Go 47.10% Medium
0358 Rearrange String k Distance Apart 32.90% Hard
0359 Logger Rate Limiter 65.40% Easy
0360 Sort Transformed Array 46.90% Medium
0361 Bomb Enemy 43.60% Medium
0362 Design Hit Counter 59.20% Medium
0363 Max Sum of Rectangle No Larger Than K 35.30% Hard
0364 Nested List Weight Sum II 58.00% Medium
0365 Water and Jug Problem 29.00% Medium
0366 Find Leaves of Binary Tree 66.00% Medium
0367 Valid Perfect Square 40.00% Easy
0368 Largest Divisible Subset 34.90% Medium
0369 Plus One Linked List 56.40% Medium
0370 Range Addition 60.60% Medium
0371 Sum of Two Integers Go 50.90% Easy
0372 Super Pow Go 35.70% Medium
0373 Find K Pairs with Smallest Sums Go 34.00% Medium
0374 Guess Number Higher or Lower 39.60% Easy
0375 Guess Number Higher or Lower II 37.80% Medium
0376 Wiggle Subsequence 37.60% Medium
0377 Combination Sum IV 43.70% Medium
0378 Kth Smallest Element in a Sorted Matrix Go 49.70% Medium
0379 Design Phone Directory 41.70% Medium
0380 Insert Delete GetRandom O(1) 43.00% Medium
0381 Insert Delete GetRandom O(1) - Duplicates allowed 32.10% Hard
0382 Linked List Random Node 49.40% Medium
0383 Ransom Note 50.10% Easy
0384 Shuffle an Array 50.30% Medium
0385 Mini Parser Go 31.90% Medium
0386 Lexicographical Numbers 46.50% Medium
0387 First Unique Character in a String Go 50.20% Easy
0388 Longest Absolute File Path 39.30% Medium
0389 Find the Difference Go 53.20% Easy
0390 Elimination Game 43.40% Medium
0391 Perfect Rectangle 28.30% Hard
0392 Is Subsequence Go 46.90% Medium
0393 UTF-8 Validation Go 36.00% Medium
0394 Decode String Go 45.20% Medium
0395 Longest Substring with At Least K Repeating Characters 38.80% Medium
0396 Rotate Function 35.20% Medium
0397 Integer Replacement Go 31.50% Medium
0398 Random Pick Index 50.20% Medium
0399 Evaluate Division Go 47.80% Medium
0400 Nth Digit 30.40% Easy
0401 Binary Watch Go 45.40% Easy
0402 Remove K Digits Go 26.70% Medium
0403 Frog Jump 36.40% Hard
0404 Sum of Left Leaves Go 49.20% Easy
0405 Convert a Number to Hexadecimal Go 42.00% Easy
0406 Queue Reconstruction by Height 60.10% Medium
0407 Trapping Rain Water II 39.40% Hard
0408 Valid Word Abbreviation 29.60% Easy
0409 Longest Palindrome Go 48.20% Easy
0410 Split Array Largest Sum Go 42.60% Hard
0411 Minimum Unique Word Abbreviation 35.10% Hard
0412 Fizz Buzz Go 59.70% Easy
0413 Arithmetic Slices 56.00% Medium
0414 Third Maximum Number
Go 29.10% Easy
0415 Add Strings 43.90% Easy
0416 Partition Equal Subset Sum Go 40.90% Medium
0417 Pacific Atlantic Water Flow 37.60% Medium
0418 Sentence Screen Fitting 31.20% Medium
0419 Battleships in a Board 65.90% Medium
0420 Strong Password Checker 17.20% Hard
0421 Maximum XOR of Two Numbers in an Array Go 51.20% Medium
0422 Valid Word Square 36.60% Easy
0423 Reconstruct Original Digits from English 45.70% Medium
0424 Longest Repeating Character Replacement Go 44.30% Medium
0425 Word Squares 44.50% Hard
0426 Convert Binary Search Tree to Sorted Doubly Linked List 52.50% Medium
0427 Construct Quad Tree 57.20% Medium
0428 Serialize and Deserialize N-ary Tree 54.20% Hard
0429 N-ary Tree Level Order Traversal 59.80% Easy
0430 Flatten a Multilevel Doubly Linked List 42.60% Medium
0431 Encode N-ary Tree to Binary Tree 64.20% Hard
0432 All O`one Data Structure 29.70% Hard
0433 Minimum Genetic Mutation Go 38.40% Medium
0434 Number of Segments in a String 37.00% Easy
0435 Non-overlapping Intervals Go 41.60% Medium
0436 Find Right Interval Go 42.90% Medium
0437 Path Sum III Go 43.00% Easy
0438 Find All Anagrams in a String Go 37.50% Easy
0439 Ternary Expression Parser 53.70% Medium
0440 K-th Smallest in Lexicographical Order 26.60% Hard
0441 Arranging Coins Go 38.10% Easy
0442 Find All Duplicates in an Array 61.30% Medium
0443 String Compression 37.90% Easy
0444 Sequence Reconstruction 20.50% Medium
0445 Add Two Numbers II Go 50.40% Medium
0446 Arithmetic Slices II - Subsequence 30.30% Hard
0447 Number of Boomerangs Go 50.00% Easy
0448 Find All Numbers Disappeared in an Array 53.60% Easy
0449 Serialize and Deserialize BST 47.50% Medium
0450 Delete Node in a BST 40.20% Medium
0451 Sort Characters By Frequency Go 56.40% Medium
0452 Minimum Number of Arrows to Burst Balloons 46.60% Medium
0453 Minimum Moves to Equal Array Elements 49.30% Easy
0454 4Sum II Go 50.80% Medium
0455 Assign Cookies Go 48.50% Easy
0456 132 Pattern Go 27.40% Medium
0457 Circular Array Loop Go 27.70% Medium
0458 Poor Pigs 45.50% Hard
0459 Repeated Substring Pattern 40.00% Easy
0460 LFU Cache 29.00% Hard
0461 Hamming Distance Go 70.40% Easy
0462 Minimum Moves to Equal Array Elements II 52.50% Medium
0463 Island Perimeter Go 61.20% Easy
0464 Can I Win 27.30% Medium
0465 Optimal Account Balancing 42.90% Hard
0466 Count The Repetitions 27.30% Hard
0467 Unique Substrings in Wraparound String 34.10% Medium
0468 Validate IP Address 21.40% Medium
0469 Convex Polygon 35.50% Medium
0470 Implement Rand10() Using Rand7() Go 45.10% Medium
0471 Encode String with Shortest Length 45.20% Hard
0472 Concatenated Words 35.10% Hard
0473 Matchsticks to Square 36.00% Medium
0474 Ones and Zeroes Go 39.80% Medium
0475 Heaters 31.90% Easy
0476 Number Complement Go 62.50% Easy
0477 Total Hamming Distance Go 49.00% Medium
0478 Generate Random Point in a Circle 36.90% Medium
0479 Largest Palindrome Product 27.50% Hard
0480 Sliding Window Median Go 32.80% Hard
0481 Magical String 46.30% Medium
0482 License Key Formatting 41.10% Easy
0483 Smallest Good Base Go 34.20% Hard
0484 Find Permutation 57.80% Medium
0485 Max Consecutive Ones 55.10% Easy
0486 Predict the Winner 46.80% Medium
0487 Max Consecutive Ones II 46.70% Medium
0488 Zuma Game 39.10% Hard
0489 Robot Room Cleaner 64.70% Hard
0490 The Maze 47.60% Medium
0491 Increasing Subsequences Go 42.20% Medium
0492 Construct the Rectangle 48.80% Easy
0493 Reverse Pairs Go 23.30% Hard
0494 Target Sum 45.40% Medium
0495 Teemo Attacking 52.30% Medium
0496 Next Greater Element I Go 59.80% Easy
0497 Random Point in Non-overlapping Rectangles Go 35.90% Medium
0498 Diagonal Traverse Go 45.40% Medium
0499 The Maze III 37.40% Hard
0500 Keyboard Row Go 62.40% Easy
0501 Find Mode in Binary Search Tree 39.60% Easy
0502 IPO 38.00% Hard
0503 Next Greater Element II Go 51.30% Medium
0504 Base 7 45.00% Easy
0505 The Maze II 44.10% Medium
0506 Relative Ranks 48.40% Easy
0507 Perfect Number 34.40% Easy
0508 Most Frequent Subtree Sum Go 54.80% Medium
0509 Fibonacci Number Go 66.70% Easy
0510 Inorder Successor in BST II 53.30% Medium
0511 Game Play Analysis I 74.40% Easy
0512 Game Play Analysis II 56.80% Easy
0513 Find Bottom Left Tree Value Go 58.60% Medium
0514 Freedom Trail 40.70% Hard
0515 Find Largest Value in Each Tree Row Go 58.00% Medium
0516 Longest Palindromic Subsequence 47.10% Medium
0517 Super Washing Machines 37.00% Hard
0518 Coin Change 2 43.10% Medium
0519 Random Flip Matrix 33.00% Medium
0520 Detect Capital 52.60% Easy
0521 Longest Uncommon Subsequence I 56.50% Easy
0522 Longest Uncommon Subsequence II 32.90% Medium
0523 Continuous Subarray Sum 24.20% Medium
0524 Longest Word in Dictionary through Deleting Go 46.00% Medium
0525 Contiguous Array 42.80% Medium
0526 Beautiful Arrangement Go 54.80% Medium
0527 Word Abbreviation 50.20% Hard
0528 Random Pick with Weight Go 42.80% Medium
0529 Minesweeper 53.10% Medium
0530 Minimum Absolute Difference in BST 50.70% Easy
0531 Lonely Pixel I 57.60% Medium
0532 K-diff Pairs in an Array Go 30.00% Easy
0533 Lonely Pixel II 46.20% Medium
0534 Game Play Analysis III 64.60% Medium
0535 Encode and Decode TinyURL 76.90% Medium
0536 Construct Binary Tree from String 45.20% Medium
0537 Complex Number Multiplication 65.70% Medium
0538 Convert BST to Greater Tree 51.30% Easy
0539 Minimum Time Difference 48.10% Medium
0540 Single Element in a Sorted Array 57.40% Medium
0541 Reverse String II Go 45.70% Easy
0542 01 Matrix Go 36.00% Medium
0543 Diameter of Binary Tree 46.90% Easy
0544 Output Contest Matches 73.50% Medium
0545 Boundary of Binary Tree 35.30% Medium
0546 Remove Boxes 38.50% Hard
0547 Friend Circles Go 53.90% Medium
0548 Split Array with Equal Sum 43.50% Medium
0549 Binary Tree Longest Consecutive Sequence II 44.50% Medium
0550 Game Play Analysis IV 42.20% Medium
0551 Student Attendance Record I 45.30% Easy
0552 Student Attendance Record II 33.30% Hard
0553 Optimal Division 55.50% Medium
0554 Brick Wall 47.80% Medium
0555 Split Concatenated Strings 40.00% Medium
0556 Next Greater Element III 30.00% Medium
0557 Reverse Words in a String III Go 64.40% Easy
0558 Quad Tree Intersection 41.10% Easy
0559 Maximum Depth of N-ary Tree 65.60% Easy
0560 Subarray Sum Equals K 42.30% Medium
0561 Array Partition I 69.30% Easy
0562 Longest Line of Consecutive One in Matrix 43.80% Medium
0563 Binary Tree Tilt Go 47.10% Easy
0564 Find the Closest Palindrome 18.90% Hard
0565 Array Nesting 52.80% Medium
0566 Reshape the Matrix Go 59.00% Easy
0567 Permutation in String Go 38.60% Medium
0568 Maximum Vacation Days 38.30% Hard
0569 Median Employee Salary 47.60% Hard
0570 Managers with at Least 5 Direct Reports 62.90% Medium
0571 Find Median Given Frequency of Numbers 46.80% Hard
0572 Subtree of Another Tree Go 41.80% Easy
0573 Squirrel Simulation 53.80% Medium
0574 Winning Candidate 36.80% Medium
0575 Distribute Candies Go 59.80% Easy
0576 Out of Boundary Paths 32.30% Medium
0577 Employee Bonus 59.90% Easy
0578 Get Highest Answer Rate Question 35.70% Medium
0579 Find Cumulative Salary of an Employee 34.30% Hard
0580 Count Student Number in Departments 42.90% Medium
0581 Shortest Unsorted Continuous Subarray 30.20% Easy
0582 Kill Process 56.50% Medium
0583 Delete Operation for Two Strings 45.10% Medium
0584 Find Customer Referee 67.90% Easy
0585 Investments in 2016 47.70% Medium
0586 Customer Placing the Largest Number of Orders 66.90% Easy
0587 Erect the Fence 34.40% Hard
0588 Design In-Memory File System 40.00% Hard
0589 N-ary Tree Preorder Traversal 67.80% Easy
0590 N-ary Tree Postorder Traversal 67.90% Easy
0591 Tag Validator 32.90% Hard
0592 Fraction Addition and Subtraction 47.20% Medium
0593 Valid Square 40.60% Medium
0594 Longest Harmonious Subsequence Go 44.00% Easy
0595 Big Countries 74.00% Easy
0596 Classes More Than 5 Students 35.80% Easy
0597 Friend Requests I: Overall Acceptance Rate 39.80% Easy
0598 Range Addition II 48.70% Easy
0599 Minimum Index Sum of Two Lists Go 48.20% Easy
0600 Non-negative Integers without Consecutive Ones 32.80% Hard
0601 Human Traffic of Stadium 36.80% Hard
0602 Friend Requests II: Who Has the Most Friends 45.40% Medium
0603 Consecutive Available Seats 58.60% Easy
0604 Design Compressed String Iterator 34.90% Easy
0605 Can Place Flowers 31.00% Easy
0606 Construct String from Binary Tree 51.70% Easy
0607 Sales Person 57.30% Easy
0608 Tree Node 59.10% Medium
0609 Find Duplicate File in System 55.50% Medium
0610 Triangle Judgement 61.60% Easy
0611 Valid Triangle Number 45.40% Medium
0612 Shortest Distance in a Plane 54.00% Medium
0613 Shortest Distance in a Line 73.20% Easy
0614 Second Degree Follower 22.60% Medium
0615 Average Salary: Departments VS Company 38.00% Hard
0616 Add Bold Tag in String 39.40% Medium
0617 Merge Two Binary Trees 70.40% Easy
0618 Students Report By Geography 43.10% Hard
0619 Biggest Single Number 39.10% Easy
0620 Not Boring Movies 62.50% Easy
0621 Task Scheduler 45.70% Medium
0622 Design Circular Queue 39.70% Medium
0623 Add One Row to Tree 47.40% Medium
0624 Maximum Distance in Arrays 37.40% Easy
0625 Minimum Factorization 32.00% Medium
0626 Exchange Seats 54.80% Medium
0627 Swap Salary 69.20% Easy
0628 Maximum Product of Three Numbers Go 46.20% Easy
0629 K Inverse Pairs Array 29.30% Hard
0630 Course Schedule III 31.90% Hard
0631 Design Excel Sum Formula 29.30% Hard
0632 Smallest Range Covering Elements from K Lists Go 47.90% Hard
0633 Sum of Square Numbers 32.70% Easy
0634 Find the Derangement of An Array 37.80% Medium
0635 Design Log Storage System 54.40% Medium
0636 Exclusive Time of Functions Go 48.80% Medium
0637 Average of Levels in Binary Tree Go 59.00% Easy
0638 Shopping Offers 48.90% Medium
0639 Decode Ways II 25.30% Hard
0640 Solve the Equation 40.40% Medium
0641 Design Circular Deque 49.80% Medium
0642 Design Search Autocomplete System 38.20% Hard
0643 Maximum Average Subarray I 39.70% Easy
0644 Maximum Average Subarray II 28.70% Hard
0645 Set Mismatch Go 40.80% Easy
0646 Maximum Length of Pair Chain 49.00% Medium
0647 Palindromic Substrings 57.20% Medium
0648 Replace Words Go 52.20% Medium
0649 Dota2 Senate 37.80% Medium
0650 2 Keys Keyboard 46.80% Medium
0651 4 Keys Keyboard 50.80% Medium
0652 Find Duplicate Subtrees 45.90% Medium
0653 Two Sum IV - Input is a BST Go 52.60% Easy
0654 Maximum Binary Tree 76.40% Medium
0655 Print Binary Tree 52.10% Medium
0656 Coin Path 27.00% Hard
0657 Robot Return to Origin 71.70% Easy
0658 Find K Closest Elements Go 38.20% Medium
0659 Split Array into Consecutive Subsequences 40.80% Medium
0660 Remove 9 51.60% Hard
0661 Image Smoother 49.00% Easy
0662 Maximum Width of Binary Tree Go 39.60% Medium
0663 Equal Tree Partition 38.10% Medium
0664 Strange Printer 36.90% Hard
0665 Non-decreasing Array 19.50% Easy
0666 Path Sum IV 52.50% Medium
0667 Beautiful Arrangement II 52.10% Medium
0668 Kth Smallest Number in Multiplication Table Go 42.20% Hard
0669 Trim a Binary Search Tree 60.50% Easy
0670 Maximum Swap 39.80% Medium
0671 Second Minimum Node In a Binary Tree 43.30% Easy
0672 Bulb Switcher II 50.10% Medium
0673 Number of Longest Increasing Subsequence 33.70% Medium
0674 Longest Continuous Increasing Subsequence 44.40% Easy
0675 Cut Off Trees for Golf Event 30.80% Hard
0676 Implement Magic Dictionary Go 51.70% Medium
0677 Map Sum Pairs 51.80% Medium
0678 Valid Parenthesis String 32.90% Medium
0679 24 Game 43.00% Hard
0680 Valid Palindrome II 34.30% Easy
0681 Next Closest Time 42.70% Medium
0682 Baseball Game Go 61.20% Easy
0683 K Empty Slots 34.20% Hard
0684 Redundant Connection Go 52.10% Medium
0685 Redundant Connection II Go 30.80% Hard
0686 Repeated String Match 31.50% Easy
0687 Longest Univalue Path 33.90% Easy
0688 Knight Probability in Chessboard 44.60% Medium
0689 Maximum Sum of 3 Non-Overlapping Subarrays 44.20% Hard
0690 Employee Importance 54.40% Easy
0691 Stickers to Spell Word 38.50% Hard
0692 Top K Frequent Words 46.00% Medium
0693 Binary Number with Alternating Bits Go 58.00% Easy
0694 Number of Distinct Islands 51.40% Medium
0695 Max Area of Island 57.60% Medium
0696 Count Binary Substrings 53.60% Easy
0697 Degree of an Array 50.60% Easy
0698 Partition to K Equal Sum Subsets 42.50% Medium
0699 Falling Squares Go 40.10% Hard
0700 Search in a Binary Search Tree 68.60% Easy
0701 Insert into a Binary Search Tree 76.10% Medium
0702 Search in a Sorted Array of Unknown Size 59.30% Medium
0703 Kth Largest Element in a Stream 46.60% Easy
0704 Binary Search Go 48.00% Easy
0705 Design HashSet Go 53.90% Easy
0706 Design HashMap Go 56.30% Easy
0707 Design Linked List Go 21.60% Easy
0708 Insert into a Cyclic Sorted List 29.20% Medium
0709 To Lower Case 77.00% Easy
0710 Random Pick with Blacklist Go 31.30% Hard
0711 Number of Distinct Islands II 46.20% Hard
0712 Minimum ASCII Delete Sum for Two Strings 54.80% Medium
0713 Subarray Product Less Than K Go 36.80% Medium
0714 Best Time to Buy and Sell Stock with Transaction Fee Go 50.60% Medium
0715 Range Module Go 35.70% Hard
0716 Max Stack 40.20% Easy
0717 1-bit and 2-bit Characters Go 49.20% Easy
0718 Maximum Length of Repeated Subarray Go 46.30% Medium
0719 Find K-th Smallest Pair Distance Go 29.30% Hard
0720 Longest Word in Dictionary Go 45.00% Easy
0721 Accounts Merge Go 40.80% Medium
0722 Remove Comments 31.40% Medium
0723 Candy Crush 63.40% Medium
0724 Find Pivot Index 41.30% Easy
0725 Split Linked List in Parts Go 49.10% Medium
0726 Number of Atoms Go 44.90% Hard
0727 Minimum Window Subsequence 37.50% Hard
0728 Self Dividing Numbers 70.50% Easy
0729 My Calendar I Go 47.60% Medium
0730 Count Different Palindromic Subsequences 39.20% Hard
0731 My Calendar II 44.80% Medium
0732 My Calendar III Go 55.20% Hard
0733 Flood Fill Go 51.10% Easy
0734 Sentence Similarity 40.80% Easy
0735 Asteroid Collision Go 38.60% Medium
0736 Parse Lisp Expression 44.30% Hard
0737 Sentence Similarity II 43.60% Medium
0738 Monotone Increasing Digits 42.00% Medium
0739 Daily Temperatures Go 60.10% Medium
0740 Delete and Earn 46.10% Medium
0741 Cherry Pickup 30.10% Hard
0742 Closest Leaf in a Binary Tree 39.40% Medium
0743 Network Delay Time 42.40% Medium
0744 Find Smallest Letter Greater Than Target Go 44.10% Easy
0745 Prefix and Suffix Search Go 30.90% Hard
0746 Min Cost Climbing Stairs Go 47.50% Easy
0747 Largest Number At Least Twice of Others 40.70% Easy
0748 Shortest Completing Word Go 54.50% Easy
0749 Contain Virus 41.40% Hard
0750 Number Of Corner Rectangles 64.80% Medium
0751 IP to CIDR 59.70% Easy
0752 Open the Lock 46.30% Medium
0753 Cracking the Safe 46.60% Hard
0754 Reach a Number 32.80% Easy
0755 Pour Water 40.80% Medium
0756 Pyramid Transition Matrix Go 51.80% Medium
0757 Set Intersection Size At Least Two 37.00% Hard
0758 Bold Words in String 42.70% Easy
0759 Employee Free Time 61.50% Hard
0760 Find Anagram Mappings 79.40% Easy
0761 Special Binary String 52.00% Hard
0762 Prime Number of Set Bits in Binary Representation Go 59.60% Easy
0763 Partition Labels Go 70.80% Medium
0764 Largest Plus Sign 43.50% Medium
0765 Couples Holding Hands Go 51.70% Hard
0766 Toeplitz Matrix Go 61.90% Easy
0767 Reorganize String Go 42.70% Medium
0768 Max Chunks To Make Sorted II 46.10% Hard
0769 Max Chunks To Make Sorted 51.90% Medium
0770 Basic Calculator IV 45.70% Hard
0771 Jewels and Stones Go 83.20% Easy
0772 Basic Calculator III 43.40% Hard
0773 Sliding Puzzle 52.90% Hard
0774 Minimize Max Distance to Gas Station 42.00% Hard
0775 Global and Local Inversions 39.10% Medium
0776 Split BST 52.70% Medium
0777 Swap Adjacent in LR String 33.40% Medium
0778 Swim in Rising Water Go 47.80% Hard
0779 K-th Symbol in Grammar 37.50% Medium
0780 Reaching Points 27.60% Hard
0781 Rabbits in Forest Go 51.80% Medium
0782 Transform to Chessboard 39.80% Hard
0783 Minimum Distance Between BST Nodes 50.60% Easy
0784 Letter Case Permutation Go 57.40% Easy
0785 Is Graph Bipartite? 43.50% Medium
0786 K-th Smallest Prime Fraction Go 39.90% Hard
0787 Cheapest Flights Within K Stops 35.20% Medium
0788 Rotated Digits 54.40% Easy
0789 Escape The Ghosts 55.40% Medium
0790 Domino and Tromino Tiling 36.00% Medium
0791 Custom Sort String 62.30% Medium
0792 Number of Matching Subsequences 43.40% Medium
0793 Preimage Size of Factorial Zeroes Function Go 39.10% Hard
0794 Valid Tic-Tac-Toe State 29.80% Medium
0795 Number of Subarrays with Bounded Maximum 43.40% Medium
0796 Rotate String 49.10% Easy
0797 All Paths From Source to Target 70.70% Medium
0798 Smallest Rotation with Highest Score 40.40% Hard
0799 Champagne Tower 34.20% Medium
0800 Similar RGB Color 59.80% Easy
0801 Minimum Swaps To Make Sequences Increasing 34.90% Medium
0802 Find Eventual Safe States 44.10% Medium
0803 Bricks Falling When Hit Go 28.80% Hard
0804 Unique Morse Code Words 74.90% Easy
0805 Split Array With Same Average 24.50% Hard
0806 Number of Lines To Write String 63.20% Easy
0807 Max Increase to Keep City Skyline 81.60% Medium
0808 Soup Servings 37.50% Medium
0809 Expressive Words 43.70% Medium
0810 Chalkboard XOR Game 45.10% Hard
0811 Subdomain Visit Count Go 65.60% Easy
0812 Largest Triangle Area 56.30% Easy
0813 Largest Sum of Averages 45.50% Medium
0814 Binary Tree Pruning 71.20% Medium
0815 Bus Routes Go 40.30% Hard
0816 Ambiguous Coordinates 44.20% Medium
0817 Linked List Components Go 54.80% Medium
0818 Race Car 35.20% Hard
0819 Most Common Word Go 42.20% Easy
0820 Short Encoding of Words 47.40% Medium
0821 Shortest Distance to a Character 63.60% Easy
0822 Card Flipping Game 40.50% Medium
0823 Binary Trees With Factors 32.60% Medium
0824 Goat Latin 57.90% Easy
0825 Friends Of Appropriate Ages 36.50% Medium
0826 Most Profit Assigning Work Go 35.90% Medium
0827 Making A Large Island 43.40% Hard
0828 Unique Letter String Go 39.80% Hard
0829 Consecutive Numbers Sum 33.50% Hard
0830 Positions of Large Groups 47.90% Easy
0831 Masking Personal Information 42.20% Medium
0832 Flipping an Image 72.90% Easy
0833 Find And Replace in String 46.50% Medium
0834 Sum of Distances in Tree Go 39.70% Hard
0835 Image Overlap 52.90% Medium
0836 Rectangle Overlap 46.60% Easy
0837 New 21 Game 31.80% Medium
0838 Push Dominoes Go 44.00% Medium
0839 Similar String Groups Go 34.70% Hard
0840 Magic Squares In Grid 35.60% Easy
0841 Keys and Rooms 60.50% Medium
0842 Split Array into Fibonacci Sequence Go 34.90% Medium
0843 Guess the Word 43.60% Hard
0844 Backspace String Compare Go 46.10% Easy
0845 Longest Mountain in Array Go 34.40% Medium
0846 Hand of Straights 49.50% Medium
0847 Shortest Path Visiting All Nodes 47.10% Hard
0848 Shifting Letters 41.00% Medium
0849 Maximize Distance to Closest Person 41.00% Easy
0850 Rectangle Area II Go 45.00% Hard
0851 Loud and Rich 47.80% Medium
0852 Peak Index in a Mountain Array Go 69.70% Easy
0853 Car Fleet Go 40.00% Medium
0854 K-Similar Strings 33.80% Hard
0855 Exam Room 38.60% Medium
0856 Score of Parentheses Go 56.50% Medium
0857 Minimum Cost to Hire K Workers 47.60% Hard
0858 Mirror Reflection 52.00% Medium
0859 Buddy Strings 27.60% Easy
0860 Lemonade Change 50.60% Easy
0861 Score After Flipping Matrix 69.80% Medium
0862 Shortest Subarray with Sum at Least K 22.20% Hard
0863 All Nodes Distance K in Binary Tree 48.00% Medium
0864 Shortest Path to Get All Keys Go 36.20% Hard
0865 Smallest Subtree with all the Deepest Nodes 56.00% Medium
0866 Prime Palindrome 20.30% Medium
0867 Transpose Matrix Go 63.90% Easy
0868 Binary Gap 59.50% Easy
0869 Reordered Power of 2 51.10% Medium
0870 Advantage Shuffle 42.60% Medium
0871 Minimum Number of Refueling Stops 29.10% Hard
0872 Leaf-Similar Trees 63.50% Easy
0873 Length of Longest Fibonacci Subsequence 46.40% Medium
0874 Walking Robot Simulation 32.30% Easy
0875 Koko Eating Bananas Go 46.20% Medium
0876 Middle of the Linked List Go 64.40% Easy
0877 Stone Game 61.50% Medium
0878 Nth Magical Number Go 25.60% Hard
0879 Profitable Schemes 36.80% Hard
0880 Decoded String at Index Go 23.00% Medium
0881 Boats to Save People Go 44.00% Medium
0882 Reachable Nodes In Subdivided Graph 38.30% Hard
0883 Projection Area of 3D Shapes 65.80% Easy
0884 Uncommon Words from Two Sentences Go 60.90% Easy
0885 Spiral Matrix III Go 64.40% Medium
0886 Possible Bipartition 40.90% Medium
0887 Super Egg Drop Go 24.80% Hard
0888 Fair Candy Swap 56.80% Easy
0889 Construct Binary Tree from Preorder and Postorder Traversal 60.30% Medium
0890 Find and Replace Pattern 71.30% Medium
0891 Sum of Subsequence Widths Go 29.10% Hard
0892 Surface Area of 3D Shapes 56.10% Easy
0893 Groups of Special-Equivalent Strings 62.80% Easy
0894 All Possible Full Binary Trees 71.00% Medium
0895 Maximum Frequency Stack Go 56.40% Hard
0896 Monotonic Array 55.40% Easy
0897 Increasing Order Search Tree Go 64.90% Easy
0898 Bitwise ORs of Subarrays Go 34.40% Medium
0899 Orderly Queue 47.50% Hard
0900 RLE Iterator 50.30% Medium
0901 Online Stock Span Go 49.40% Medium
0902 Numbers At Most N Given Digit Set 28.70% Hard
0903 Valid Permutations for DI Sequence 44.70% Hard
0904 Fruit Into Baskets Go 41.60% Medium
0905 Sort Array By Parity 72.60% Easy
0906 Super Palindromes 30.40% Hard
0907 Sum of Subarray Minimums Go 27.60% Medium
0908 Smallest Range I 64.60% Easy
0909 Snakes and Ladders 33.80% Medium
0910 Smallest Range II 23.70% Medium
0911 Online Election Go 47.10% Medium
0912 Sort an Array 63.60% Medium
0913 Cat and Mouse 28.80% Hard
0914 X of a Kind in a Deck of Cards 34.10% Easy
0915 Partition Array into Disjoint Intervals 43.50% Medium
0916 Word Subsets 45.40% Medium
0917 Reverse Only Letters 55.90% Easy
0918 Maximum Sum Circular Subarray Go 32.00% Medium
0919 Complete Binary Tree Inserter 55.20% Medium
0920 Number of Music Playlists Go 43.90% Hard
0921 Minimum Add to Make Parentheses Valid Go 70.30% Medium
0922 Sort Array By Parity II Go 67.10% Easy
0923 3Sum With Multiplicity Go 33.90% Medium
0924 Minimize Malware Spread Go 40.10% Hard
0925 Long Pressed Name Go 44.50% Easy
0926 Flip String to Monotone Increasing 49.80% Medium
0927 Three Equal Parts Go 30.40% Hard
0928 Minimize Malware Spread II Go 39.50% Hard
0929 Unique Email Addresses 70.50% Easy
0930 Binary Subarrays With Sum Go 38.20% Medium
0931 Minimum Falling Path Sum 59.00% Medium
0932 Beautiful Array 53.60% Medium
0933 Number of Recent Calls 69.40% Easy
0934 Shortest Bridge 44.20% Medium
0935 Knight Dialer 41.10% Medium
0936 Stamping The Sequence 36.20% Hard
0937 Reorder Log Files 56.90% Easy
0938 Range Sum of BST 78.80% Easy
0939 Minimum Area Rectangle 50.50% Medium
0940 Distinct Subsequences II 39.80% Hard
0941 Valid Mountain Array 35.50% Easy
0942 DI String Match Go 70.00% Easy
0943 Find the Shortest Superstring 38.30% Hard
0944 Delete Columns to Make Sorted 69.40% Easy
0945 Minimum Increment to Make Array Unique 42.90% Medium
0946 Validate Stack Sequences Go 57.60% Medium
0947 Most Stones Removed with Same Row or Column Go 54.20% Medium
0948 Bag of Tokens 39.30% Medium
0949 Largest Time for Given Digits 34.20% Easy
0950 Reveal Cards In Increasing Order 72.20% Medium
0951 Flip Equivalent Binary Trees 65.20% Medium
0952 Largest Component Size by Common Factor Go 26.60% Hard
0953 Verifying an Alien Dictionary Go 55.60% Easy
0954 Array of Doubled Pairs 34.40% Medium
0955 Delete Columns to Make Sorted II 31.60% Medium
0956 Tallest Billboard 38.40% Hard
0957 Prison Cells After N Days 38.20% Medium
0958 Check Completeness of a Binary Tree 47.60% Medium
0959 Regions Cut By Slashes Go 62.50% Medium
0960 Delete Columns to Make Sorted III 52.80% Hard
0961 N-Repeated Element in Size 2N Array Go 72.40% Easy
0962 Maximum Width Ramp 41.80% Medium
0963 Minimum Area Rectangle II 44.50% Medium
0964 Least Operators to Express Number 40.90% Hard
0965 Univalued Binary Tree 66.90% Easy
0966 Vowel Spellchecker 41.90% Medium
0967 Numbers With Same Consecutive Differences 37.10% Medium
0968 Binary Tree Cameras Go 35.40% Hard
0969 Pancake Sorting Go 62.40% Medium
0970 Powerful Integers Go 39.30% Easy
0971 Flip Binary Tree To Match Preorder Traversal 43.00% Medium
0972 Equal Rational Numbers 40.20% Hard
0973 K Closest Points to Origin Go 62.20% Medium
0974 Subarray Sums Divisible by K 45.20% Medium
0975 Odd Even Jump 47.20% Hard
0976 Largest Perimeter Triangle Go 57.20% Easy
0977 Squares of a Sorted Array Go 72.00% Easy
0978 Longest Turbulent Subarray Go 45.60% Medium
0979 Distribute Coins in Binary Tree Go 67.20% Medium
0980 Unique Paths III Go 71.20% Hard
0981 Time Based Key-Value Store Go 50.80% Medium
0982 Triples with Bitwise AND Equal To Zero 54.00% Hard
0983 Minimum Cost For Tickets 57.30% Medium
0984 String Without AAA or BBB Go 33.90% Medium
0985 Sum of Even Numbers After Queries 63.40% Easy
0986 Interval List Intersections Go 63.30% Medium
0987 Vertical Order Traversal of a Binary Tree 31.80% Medium
0988 Smallest String Starting From Leaf 46.00% Medium
0989 Add to Array-Form of Integer 44.70% Easy
0990 Satisfiability of Equality Equations Go 40.10% Medium
0991 Broken Calculator 40.40% Medium
0992 Subarrays with K Different Integers Go 45.20% Hard
0993 Cousins in Binary Tree Go 52.40% Easy
0994 Rotting Oranges 46.40% Easy
0995 Minimum Number of K Consecutive Bit Flips Go 48.40% Hard
0996 Number of Squareful Arrays Go 47.80% Hard
0997 Find the Town Judge 49.10% Easy
0998 Maximum Binary Tree II 61.60% Medium
0999 Available Captures for Rook 66.10% Easy
1000 Minimum Cost to Merge Stones 32.10% Hard
1001 Grid Illumination 34.40% Hard
1002 Find Common Characters Go 65.80% Easy
1003 Check If Word Is Valid After Substitutions Go 51.80% Medium
1004 Max Consecutive Ones III Go 53.40% Medium
1005 Maximize Sum Of Array After K Negations Go 49.70% Easy
1006 Clumsy Factorial 53.70% Medium
1007 Minimum Domino Rotations For Equal Row 47.90% Medium
1008 Construct Binary Search Tree from Preorder Traversal 73.10% Medium
1009 Complement of Base 10 Integer 58.90% Easy
1010 Pairs of Songs With Total Durations Divisible by 60 45.60% Easy
1011 Capacity To Ship Packages Within D Days Go 53.30% Medium
1012 Numbers With Repeated Digits 34.80% Hard
1013 Partition Array Into Three Parts With Equal Sum 55.50% Easy
1014 Best Sightseeing Pair 49.30% Medium
1015 Smallest Integer Divisible by K 28.40% Medium
1016 Binary String With Substrings Representing 1 To N 60.70% Medium
1017 Convert to Base -2 Go 56.70% Medium
1018 Binary Prefix Divisible By 5 46.60% Easy
1019 Next Greater Node In Linked List Go 56.50% Medium
1020 Number of Enclaves 54.70% Medium
1021 Remove Outermost Parentheses Go 75.60% Easy
1022 Sum of Root To Leaf Binary Numbers 55.90% Easy
1023 Camelcase Matching 56.50% Medium
1024 Video Stitching 47.20% Medium
1025 Divisor Game Go 63.30% Easy
1026 Maximum Difference Between Node and Ancestor 59.60% Medium
1027 Longest Arithmetic Sequence 47.90% Medium
1028 Recover a Tree From Preorder Traversal Go 70.20% Hard
1029 Two City Scheduling 53.90% Easy
1030 Matrix Cells in Distance Order Go 65.20% Easy
1031 Maximum Sum of Two Non-Overlapping Subarrays 55.30% Medium
1032 Stream of Characters 41.30% Hard
1033 Moving Stones Until Consecutive 35.50% Easy
1034 Coloring A Border 42.50% Medium
1035 Uncrossed Lines 51.80% Medium
1036 Escape a Large Maze 36.40% Hard
1037 Valid Boomerang 37.60% Easy
1038 Binary Search Tree to Greater Sum Tree 79.70% Medium
1039 Minimum Score Triangulation of Polygon 41.50% Medium
1040 Moving Stones Until Consecutive II Go 46.20% Medium
1041 Robot Bounded In Circle 43.40% Easy
1042 Flower Planting With No Adjacent 48.40% Easy
1043 Partition Array for Maximum Sum 62.40% Medium
1044 Longest Duplicate Substring 22.80% Hard
1045 Customers Who Bought All Products 64.10% Medium
1046 Last Stone Weight 62.40% Easy
1047 Remove All Adjacent Duplicates In String Go 63.60% Easy
1048 Longest String Chain 47.30% Medium
1049 Last Stone Weight II Go 39.90% Medium
1050 Actors and Directors Who Cooperated At Least Three Times 75.40% Easy
1051 Height Checker 69.40% Easy
1052 Grumpy Bookstore Owner Go 52.00% Medium
1053 Previous Permutation With One Swap 47.10% Medium
1054 Distant Barcodes Go 38.60% Medium
1055 Shortest Way to Form String 58.20% Medium
1056 Confusing Number 52.10% Easy
1057 Campus Bikes 58.90% Medium
1058 Minimize Rounding Error to Meet Target 41.30% Medium
1059 All Paths from Source Lead to Destination 45.60% Medium
1060 Missing Element in Sorted Array 54.20% Medium
1061 Lexicographically Smallest Equivalent String 59.30% Medium
1062 Longest Repeating Substring 50.80% Medium
1063 Number of Valid Subarrays 74.30% Hard
1064 Fixed Point 79.90% Easy
1065 Index Pairs of a String 59.30% Easy
1066 Campus Bikes II 43.30% Medium
1067 Digit Count in Range 34.40% Hard
1068 Product Sales Analysis I 77.50% Easy
1069 Product Sales Analysis II 79.90% Easy
1070 Product Sales Analysis III 42.70% Medium
1071 Greatest Common Divisor of Strings 53.60% Easy
1072 Flip Columns For Maximum Number of Equal Rows 56.20% Medium
1073 Adding Two Negabinary Numbers Go 31.60% Medium
1074 Number of Submatrices That Sum to Target Go 58.50% Hard
1075 Project Employees I 58.70% Easy
1076 Project Employees II 52.80% Easy
1077 Project Employees III 76.90% Medium
1078 Occurrences After Bigram Go 67.40% Easy
1079 Letter Tile Possibilities Go 76.50% Medium
1080 Insufficient Nodes in Root to Leaf Paths 41.10% Medium
1081 Smallest Subsequence of Distinct Characters 42.80% Medium
1082 Sales Analysis I 74.20% Easy
1083 Sales Analysis II 55.00% Easy
1084 Sales Analysis III 57.80% Easy
1085 Sum of Digits in the Minimum Number 75.30% Easy
1086 High Five 76.90% Easy
1087 Brace Expansion 57.50% Medium
1088 Confusing Number II 34.10% Hard
1089 Duplicate Zeros 58.80% Easy
1090 Largest Values From Labels 56.00% Medium
1091 Shortest Path in Binary Matrix 35.90% Medium
1092 Shortest Common Supersequence 47.20% Hard
1093 Statistics from a Large Sample Go 41.10% Medium
1094 Car Pooling 57.10% Medium
1095 Find in Mountain Array 32.50% Hard
1096 Brace Expansion II 52.00% Hard
1097 Game Play Analysis V 51.10% Hard
1098 Unpopular Books 43.20% Medium
1099 Two Sum Less Than K     62.80% Easy
1100 Find K-Length Substrings With No Repeated Characters     72.40% Medium
1101 The Earliest Moment When Everyone Become Friends     62.20% Medium
1102 Path With Maximum Minimum Value     42.50% Medium
1103 Distribute Candies to People     62.00% Easy
1104 Path In Zigzag Labelled Binary Tree     71.10% Medium
1105 Filling Bookcase Shelves     Go 53.80% Medium
1106 Parsing A Boolean Expression     59.00% Hard
1107 New Users Daily Count     46.30% Medium
1108 Defanging an IP Address     Go 87.50% Easy
1109 Corporate Flight Bookings     47.30% Medium
1110 Delete Nodes And Return Forest     61.90% Medium
1111 Maximum Nesting Depth of Two Valid Parentheses Strings     Go 63.30% Medium
1112 Highest Grade For Each Student     60.80% Medium
1113 Reported Posts     68.20% Easy
1114 Print in Order    59.20% Easy
1115 Print FooBar Alternately     59.40% Medium
1116 Print Zero Even Odd     55.40% Medium
1117 Building H2O     50.40% Hard
1118 Number of Days in a Month     57.50% Easy
1119 Remove Vowels from a String     91.10% Easy
1120 Maximum Average Subtree     60.90% Medium
1121 Divide Array Into Increasing Sequences     51.20% Hard
1122 Relative Sort Array     Go 68.50% Easy
1123 Lowest Common Ancestor of Deepest Leaves     Go 64.60% Medium
1124 Longest Well-Performing Interval    27.40% Medium
1125 Smallest Sufficient Team     43.50% Hard
1126 Active Businesses     70.80% Medium
1127 User Purchase Platform     64.50% Hard
1128 Number of Equivalent Domino Pairs     Go 40.30% Easy
1129 Shortest Path with Alternating Colors 34.20% Medium
1130 Minimum Cost Tree From Leaf Values     58.80% Medium
1131 Maximum of Absolute Value Expression     50.30% Medium
1132 Reported Posts II     35.50% Medium
1133 Largest Unique Number     70.40% Easy
1134 Armstrong Number     79.90% Easy
1135 Connecting Cities With Minimum Cost     49.40% Medium
1136 Parallel Courses     58.80% Hard
1137 N-th Tribonacci Number     Go 61.10% Easy
1138 Alphabet Board Path     42.40% Medium
1139 Largest 1-Bordered Square     42.80% Medium
1140 Stone Game II     60.60% Medium
1141 User Activity for the Past 30 Days I     55.30% Easy
1142 User Activity for the Past 30 Days II     38.10% Easy
1143 Longest Common Subsequence     58.80% Medium
1144 Decrease Elements To Make Array Zigzag     40.50% Medium
1145 Binary Tree Coloring Game     45.10% Medium
1146 Snapshot Array     29.80% Medium
1147 Longest Chunked Palindrome Decomposition     58.40% Hard
1148 Article Views I     68.30% Easy
1149 Article Views II     50.10% Medium
1150 Check If a Number Is Majority Element in a Sorted Array     72.40% Easy
1151 Minimum Swaps to Group All 1's Together     51.60% Medium
1152 Analyze User Website Visit Pattern     33.50% Medium
1153 String Transforms Into Another String     23.60% Hard
1154 Day of the Year     Go 52.10% Easy
1155 Number of Dice Rolls With Target Sum    48.60% Medium
1156 Swap For Longest Repeated Character Substring     41.10% Medium
1157 Online Majority Element In Subarray     Go 20.50% Hard
1158 Market Analysis I     50.5% Medium
1159 Market Analysis II     46.8% Hard
1160 Find Words That Can Be Formed by Characters     Go 67.6% Easy
1161 Maximum Level Sum of a Binary Tree     71.4% Medium
1162 As Far from Land as Possible     39.5% Medium
1163 Last Substring in Lexicographical Order     30.2% Hard
1164 Product Price at a Given Date     59.1% Medium
1165 Single-Row Keyboard     84.9% Easy
1166 Design File System     60.0% Medium
1167 Minimum Cost to Connect Sticks     60.1% Medium
1168 Optimize Water Distribution in a Village     52.6% Hard
1169 Invalid Transactions     27.4% Medium
1170 Compare Strings by Frequency of the Smallest Character     Go 60.5% Easy
1171 Remove Zero Sum Consecutive Nodes from Linked List     Go 42.3% Medium
1172 Dinner Plate Stacks     41.6% Hard
1173 Immediate Food Delivery I     72.5% Easy
1174 Immediate Food Delivery II     52.3% Medium
1175 Prime Arrangements     Go 50.3% Easy
1176 Diet Plan Performance     48.6% Easy
1177 Can Make Palindrome from Substring     32.0% Medium
1178 Number of Valid Words for Each Puzzle     34.7% Hard
1179 Reformat Department Table     67.1% Easy
1180 Count Substrings with Only One Distinct Letter     78.3% Easy
1181 Before and After Puzzle     41.9% Medium
1182 Shortest Distance to Target Color     50.7% Medium
1183 Maximum Number of Ones     45.7% Hard
1184 Distance Between Bus Stops     Go 56.7% Easy
1185 Day of the Week     Go 65.8% Easy
1186 Maximum Subarray Sum with One Deletion     33.2% Medium
1187 Make Array Strictly Increasing     39.6% Hard
1188 Design Bounded Blocking Queue     65.0% Medium
1189 Maximum Number of Balloons     Go 62.7% Easy
1190 Reverse Substrings Between Each Pair of Parentheses     57.8% Medium
1191 K-Concatenation Maximum Sum     24.0% Medium
1192 Critical Connections in a Network     45.2% Hard
1193 Monthly Transactions I     58.8% Medium
1194 Tournament Winners     52.2% Hard
1195 Fizz Buzz Multithreaded     67.7% Medium
1196 How Many Apples Can You Put into the Basket     68.7% Easy
1197 Minimum Knight Moves     30.1% Medium
1198 Find Smallest Common Element in All Rows     71.8% Medium
1199 Minimum Time to Build Blocks     30.1% Hard
1200 Minimum Absolute Difference     Go 66.3% Easy
1201 Ugly Number III     Go 23.9% Medium
1202 Smallest String With Swaps     39.2% Medium
1203 Sort Items by Groups Respecting Dependencies     46.9% Hard
1204 Last Person to Fit in the Elevator    New 65.8% Medium
1205 Monthly Transactions II    New 49.3% Medium
1206 Design Skiplist    New 61.8% Hard
1207 Unique Number of Occurrences     Go 77.4% Easy
1208 Get Equal Substrings Within Budget     33.3% Medium
1209 Remove All Adjacent Duplicates in String II     59.6% Medium
1210 Minimum Moves to Reach Target with Rotations     40.1% Hard
------------ ------------------------------------------------------- ------- ---------------- --------------- -------------

下面这些是免费的算法题,但是暂时还不能使用 Go 解答的:


二.分类

Array

Title Solution Difficulty Time Space 收藏
1. Two Sum Go Easy O(n) O(n)
11. Container With Most Water Go Medium O(n) O(1)
15. 3Sum Go Medium O(n^2) O(n) ❤️
16. 3Sum Closest Go Medium O(n^2) O(1) ❤️
18. 4Sum Go Medium O(n^3) O(n^2) ❤️
26. Remove Duplicates from Sorted Array Go Easy O(n) O(1)
27. Remove Element Go Easy O(n) O(1)
39. Combination Sum Go Medium O(n log n) O(n)
40. Combination Sum II Go Medium O(n log n) O(n)
41. First Missing Positive Go Hard O(n) O(n)
42. Trapping Rain Water Go Hard O(n) O(1) ❤️
48. Rotate Image Go Medium O(n) O(1)
53. Maximum Subarray Go Easy O(n) O(n)
54. Spiral Matrix Go Medium O(n) O(n^2)
56. Merge Intervals Go Medium O(n log n) O(1)
57. Insert Interval Go Hard O(n) O(1)
59. Spiral Matrix II Go Medium O(n) O(n^2)
62. Unique Paths Go Medium O(n^2) O(n^2)
63. Unique Paths II Go Medium O(n^2) O(n^2)
64. Minimum Path Sum Go Medium O(n^2) O(n^2)
75. Sort Colors Go Medium O(n) O(1) ❤️
78. Subsets Go Medium O(n^2) O(n) ❤️
79. Word Search Go Medium O(n^2) O(n^2) ❤️
80. Remove Duplicates from Sorted Array II Go Medium O(n) O(1
84. Largest Rectangle in Histogram Go Medium O(n) O(n) ❤️
88. Merge Sorted Array Go Easy O(n) O(1) ❤️
90. Subsets II Go Medium O(n^2) O(n) ❤️
120. Triangle Go Medium O(n^2) O(n)
121. Best Time to Buy and Sell Stock Go Easy O(n) O(1)
122. Best Time to Buy and Sell Stock II Go Easy O(n) O(1)
126. Word Ladder II Go Hard O(n) O(n^2) ❤️
152. Maximum Product Subarray Go Medium O(n) O(1)
167. Two Sum II - Input array is sorted Go Easy O(n) O(1)
209. Minimum Size Subarray Sum Go Medium O(n) O(1)
216. Combination Sum III Go Medium O(n) O(1) ❤️
217. Contains Duplicate Go Easy O(n) O(n)
219. Contains Duplicate II Go Easy O(n) O(n)
283. Move Zeroes Go Easy O(n) O(1)
287. Find the Duplicate Number Go Easy O(n) O(1) ❤️
532. K-diff Pairs in an Array Go Easy O(n) O(n)
566. Reshape the Matrix Go Easy O(n^2) O(n^2)
628. Maximum Product of Three Numbers Go Easy O(n) O(1)
713. Subarray Product Less Than K Go Medium O(n) O(1)
714. Best Time to Buy and Sell Stock with Transaction Fee Go Medium O(n) O(1)
746. Min Cost Climbing Stairs Go Easy O(n) O(1)
766. Toeplitz Matrix Go Easy O(n) O(1)
867. Transpose Matrix Go Easy O(n) O(1)
891. Sum of Subsequence Widths Go Hard O(n log n) O(1)
907. Sum of Subarray Minimums Go Medium O(n) O(n) ❤️
922. Sort Array By Parity II Go Medium O(n) O(1)
969. Pancake Sorting Go Medium O(n) O(1) ❤️
977. Squares of a Sorted Array Go Easy O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

String

Title Solution Difficulty Time Space 收藏
3. Longest Substring Without Repeating Characters Go Medium O(n) O(1) ❤️
17. Letter Combinations of a Phone Number Go Medium O(log n) O(1)
20. Valid Parentheses Go Easy O(log n) O(1)
22. Generate Parentheses Go Medium O(log n) O(1)
28. Implement strStr() Go Easy O(n) O(1)
30. Substring with Concatenation of All Words Go Hard O(n) O(n) ❤️
49. Group Anagrams Go Medium O(n log n) O(n)
71. Simplify Path Go Medium O(n) O(n)
76. Minimum Window Substring Go Hard O(n) O(n) ❤️
91. Decode Ways Go Medium O(n) O(n)
93. Restore IP Addresses Go Medium O(n) O(n) ❤️
125. Valid Palindrome Go Easy O(n) O(1)
126. Word Ladder II Go Hard O(n) O(n^2) ❤️
344. Reverse String Go Easy O(n) O(1)
345. Reverse Vowels of a String Go Easy O(n) O(1)
767. Reorganize String Go Medium O(n log n) O(log n) ❤️
842. Split Array into Fibonacci Sequence Go Medium O(n^2) O(1) ❤️
856. Score of Parentheses Go Medium O(n) O(n)
925. Long Pressed Name Go Easy O(n) O(1)
1003. Check If Word Is Valid After Substitutions Go Medium O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Two Pointers

  • 双指针滑动窗口的经典写法。右指针不断往右移,移动到不能往右移动为止(具体条件根据题目而定)。当右指针到最右边以后,开始挪动左指针,释放窗口左边界。第 3 题,第 76 题,第 209 题,第 424 题,第 438 题,第 567 题,第 713 题,第 763 题,第 845 题,第 881 题,第 904 题,第 978 题,第 992 题,第 1004 题,第 1040 题,第 1052 题。
	left, right := 0, -1

	for left < len(s) {
		if right+1 < len(s) && freq[s[right+1]-'a'] == 0 {
			freq[s[right+1]-'a']++
			right++
		} else {
			freq[s[left]-'a']--
			left++
		}
		result = max(result, right-left+1)
	}
  • 快慢指针可以查找重复数字,时间复杂度 O(n),第 287 题。
  • 替换字母以后,相同字母能出现连续最长的长度。第 424 题。
  • SUM 问题集。第 1 题,第 15 题,第 16 题,第 18 题,第 167 题,第 923 题,第 1074 题。
Title Solution Difficulty Time Space 收藏
3. Longest Substring Without Repeating Characters Go Medium O(n) O(1) ❤️
11. Container With Most Water Go Medium O(n) O(1)
15. 3Sum Go Medium O(n^2) O(n) ❤️
16. 3Sum Closest Go Medium O(n^2) O(1) ❤️
18. 4Sum Go Medium O(n^3) O(n^2) ❤️
19. Remove Nth Node From End of List Go Medium O(n) O(1)
26. Remove Duplicates from Sorted Array Go Easy O(n) O(1)
27. Remove Element Go Easy O(n) O(1)
28. Implement strStr() Go Easy O(n) O(1)
30. Substring with Concatenation of All Words Go Hard O(n) O(n) ❤️
42. Trapping Rain Water Go Hard O(n) O(1) ❤️
61. Rotate List Go Medium O(n) O(1)
75. Sort Colors Go Medium O(n) O(1) ❤️
76. Minimum Window Substring Go Hard O(n) O(n) ❤️
80. Remove Duplicates from Sorted Array II Go Medium O(n) O(1
86. Partition List Go Medium O(n) O(1) ❤️
88. Merge Sorted Array Go Easy O(n) O(1) ❤️
125. Valid Palindrome Go Easy O(n) O(1)
141. Linked List Cycle Go Easy O(n) O(1) ❤️
142. Linked List Cycle II Go Medium O(n) O(1) ❤️
167. Two Sum II - Input array is sorted Go Easy O(n) O(1)
209. Minimum Size Subarray Sum Go Medium O(n) O(1)
234. Palindrome Linked List Go Easy O(n) O(1)
283. Move Zeroes Go Easy O(n) O(1)
287. Find the Duplicate Number Go Easy O(n) O(1) ❤️
344. Reverse String Go Easy O(n) O(1)
345. Reverse Vowels of a String Go Easy O(n) O(1)
349. Intersection of Two Arrays Go Easy O(n) O(n)
350. Intersection of Two Arrays II Go Easy O(n) O(n)
424. Longest Repeating Character Replacement Go Medium O(n) O(1)
524. Longest Word in Dictionary through Deleting Go Medium O(n) O(1)
532. K-diff Pairs in an Array Go Easy O(n) O(n)
567. Permutation in String Go Medium O(n) O(1) ❤️
713. Subarray Product Less Than K Go Medium O(n) O(1)
763. Partition Labels Go Medium O(n) O(1) ❤️
826. Most Profit Assigning Work Go Medium O(n log n) O(n)
828. Unique Letter String Go Hard O(n) O(1) ❤️
838. Push Dominoes Go Medium O(n) O(n)
844. Backspace String Compare Go Easy O(n) O(n)
845. Longest Mountain in Array Go Medium O(n) O(1)
881. Boats to Save People Go Medium O(n log n) O(1)
904. Fruit Into Baskets Go Medium O(n log n) O(1)
923. 3Sum With Multiplicity Go Medium O(n^2) O(n)
925. Long Pressed Name Go Easy O(n) O(1)
930. Binary Subarrays With Sum Go Medium O(n) O(n) ❤️
977. Squares of a Sorted Array Go Easy O(n) O(1)
986. Interval List Intersections Go Medium O(n) O(1)
992. Subarrays with K Different Integers Go Hard O(n) O(n) ❤️
1004. Max Consecutive Ones III Go Medium O(n) O(1)
1093. Statistics from a Large Sample Go Medium O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Linked List

  • 巧妙的构造虚拟头结点。可以使遍历处理逻辑更加统一。
  • 灵活使用递归。构造递归条件,使用递归可以巧妙的解题。不过需要注意有些题目不能使用递归,因为递归深度太深会导致超时和栈溢出。
  • 链表区间逆序。第 92 题。
  • 链表寻找中间节点。第 876 题。链表寻找倒数第 n 个节点。第 19 题。只需要一次遍历就可以得到答案。
  • 合并 K 个有序链表。第 21 题,第 23 题。
  • 链表归类。第 86 题,第 328 题。
  • 链表排序,时间复杂度要求 O(n * log n),空间复杂度 O(1)。只有一种做法,归并排序,至顶向下归并。第 148 题。
  • 判断链表是否存在环,如果有环,输出环的交叉点的下标;判断 2 个链表是否有交叉点,如果有交叉点,输出交叉点。第 141 题,第 142 题,第 160 题。
Title Solution Difficulty Time Space 收藏
2. Add Two Numbers Go Medium O(n) O(1)
19. Remove Nth Node From End of List Go Medium O(n) O(1)
21. Merge Two Sorted Lists Go Easy O(log n) O(1)
23. Merge k Sorted Lists Go Hard O(log n) O(1) ❤️
24. Swap Nodes in Pairs Go Medium O(n) O(1)
25. Reverse Nodes in k-Group Go Hard O(log n) O(1) ❤️
61. Rotate List Go Medium O(n) O(1)
82. Remove Duplicates from Sorted List II Go Medium O(n) O(1)
83. Remove Duplicates from Sorted List Go Easy O(n) O(1)
86. Partition List Go Medium O(n) O(1) ❤️
92. Reverse Linked List II Go Medium O(n) O(1) ❤️
109. Convert Sorted List to Binary Search Tree Go Medium O(log n) O(n)
141. Linked List Cycle Go Easy O(n) O(1) ❤️
142. Linked List Cycle II Go Medium O(n) O(1) ❤️
143. Reorder List Go Medium O(n) O(1) ❤️
147. Insertion Sort List Go Medium O(n) O(1) ❤️
148. Sort List Go Medium O(n log n) O(n) ❤️
160. Intersection of Two Linked Lists Go Easy O(n) O(1) ❤️
203. Remove Linked List Elements Go Easy O(n) O(1)
206. Reverse Linked List Go Easy O(n) O(1)
234. Palindrome Linked List Go Easy O(n) O(1)
237. Delete Node in a Linked List Go Easy O(n) O(1)
328. Odd Even Linked List Go Medium O(n) O(1)
445. Add Two Numbers II Go Medium O(n) O(n)
725. Split Linked List in Parts Go Medium O(n) O(1)
817. Linked List Components Go Medium O(n) O(1)
707. Design Linked List Go Easy O(n) O(1)
876. Middle of the Linked List Go Easy O(n) O(1) ❤️
1019. Next Greater Node In Linked List Go Medium O(n) O(1)
---------------------------------------------------------------------------- ------------- ------------- ------------- ------------- -------------

Stack

  • 括号匹配问题及类似问题。第 20 题,第 921 题,第 1021 题。
  • 栈的基本 pop 和 push 操作。第 71 题,第 150 题,第 155 题,第 224 题,第 225 题,第 232 题,第 946 题,第 1047 题。
  • 利用栈进行编码问题。第 394 题,第 682 题,第 856 题,第 880 题。
  • 单调栈利用栈维护一个单调递增或者递减的下标数组。第 84 题,第 456 题,第 496 题,第 503 题,第 739 题,第 901 题,第 907 题,第 1019 题。
Title Solution Difficulty Time Space 收藏
20. Valid Parentheses Go Easy O(log n) O(1)
42. Trapping Rain Water Go Hard O(n) O(1) ❤️
71. Simplify Path Go Medium O(n) O(n) ❤️
84. Largest Rectangle in Histogram Go Medium O(n) O(n) ❤️
94. Binary Tree Inorder Traversal Go Medium O(n) O(1)
103. Binary Tree Zigzag Level Order Traversal Go Medium O(n) O(n)
144. Binary Tree Preorder Traversal Go Medium O(n) O(1)
145. Binary Tree Postorder Traversal Go Hard O(n) O(1)
150. Evaluate Reverse Polish Notation Go Medium O(n) O(1)
155. Min Stack Go Easy O(n) O(n)
173. Binary Search Tree Iterator Go Medium O(n) O(1)
224. Basic Calculator Go Hard O(n) O(n)
225. Implement Stack using Queues Go Easy O(n) O(n)
232. Implement Queue using Stacks Go Easy O(n) O(n)
331. Verify Preorder Serialization of a Binary Tree Go Medium O(n) O(1)
394. Decode String Go Medium O(n) O(n)
402. Remove K Digits Go Medium O(n) O(1)
456. 132 Pattern Go Medium O(n) O(n)
496. Next Greater Element I Go Easy O(n) O(n)
503. Next Greater Element II Go Medium O(n) O(n)
636. Exclusive Time of Functions Go Medium O(n) O(n)
682. Baseball Game Go Easy O(n) O(n)
726. Number of Atoms Go Hard O(n) O(n) ❤️
735. Asteroid Collision Go Medium O(n) O(n)
739. Daily Temperatures Go Medium O(n) O(n)
844. Backspace String Compare Go Easy O(n) O(n)
856. Score of Parentheses Go Medium O(n) O(n)
880. Decoded String at Index Go Medium O(n) O(n)
895. Maximum Frequency Stack Go Hard O(n) O(n)
901. Online Stock Span Go Medium O(n) O(n)
907. Sum of Subarray Minimums Go Medium O(n) O(n) ❤️
921. Minimum Add to Make Parentheses Valid Go Medium O(n) O(n)
946. Validate Stack Sequences Go Medium O(n) O(n)
1003. Check If Word Is Valid After Substitutions Go Medium O(n) O(1)
1019. Next Greater Node In Linked List Go Medium O(n) O(1)
1021. Remove Outermost Parentheses Go Medium O(n) O(1)
1047. Remove All Adjacent Duplicates In String Go Medium O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Tree

Title Solution Difficulty Time Space 收藏
94. Binary Tree Inorder Traversal Go Medium O(n) O(1)
96. Unique Binary Search Trees Go Medium O(n^2) O(n)
98. Validate Binary Search Tree Go Medium O(n) O(1)
99. Recover Binary Search Tree Go Hard O(n) O(1)
100. Same Tree Go Easy O(n) O(1)
101. Symmetric Tree Go Easy O(n) O(1)
102. Binary Tree Level Order Traversal Go Medium O(n) O(1)
103. Binary Tree Zigzag Level Order Traversal Go Medium O(n) O(n)
104. Maximum Depth of Binary Tree Go Easy O(n) O(1)
107. Binary Tree Level Order Traversal II Go Easy O(n) O(1)
108. Convert Sorted Array to Binary Search Tree Go Easy O(n) O(1)
110. Balanced Binary Tree Go Easy O(n) O(1)
111. Minimum Depth of Binary Tree Go Easy O(n) O(1)
112. Path Sum Go Easy O(n) O(1)
113. Path Sum II Go Medium O(n) O(1)
114. Flatten Binary Tree to Linked List Go Medium O(n) O(1)
124. Binary Tree Maximum Path Sum Go Hard O(n) O(1)
129. Sum Root to Leaf Numbers Go Medium O(n) O(1)
144. Binary Tree Preorder Traversal Go Medium O(n) O(1)
145. Binary Tree Postorder Traversal Go Hard O(n) O(1)
173. Binary Search Tree Iterator Go Medium O(n) O(1)
199. Binary Tree Right Side View Go Medium O(n) O(1)
222. Count Complete Tree Nodes Go Medium O(n) O(1)
226. Invert Binary Tree Go Easy O(n) O(1)
230. Kth Smallest Element in a BST Go Medium O(n) O(1)
235. Lowest Common Ancestor of a Binary Search Tree Go Easy O(n) O(1)
236. Lowest Common Ancestor of a Binary Tree Go Medium O(n) O(1)
257. Binary Tree Paths Go Easy O(n) O(1)
404. Sum of Left Leaves Go Easy O(n) O(1)
437. Path Sum III Go Easy O(n) O(1)
515. Find Largest Value in Each Tree Row Go Medium O(n) O(n)
637. Average of Levels in Binary Tree Go Easy O(n) O(n)
993. Cousins in Binary Tree Go Easy O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Dynamic Programming

Title Solution Difficulty Time Space 收藏
53. Maximum Subarray Go Easy O(n) O(n)
62. Unique Paths Go Medium O(n^2) O(n^2)
63. Unique Paths II Go Medium O(n^2) O(n^2)
64. Minimum Path Sum Go Medium O(n^2) O(n^2)
70. Climbing Stairs Go Easy O(n) O(n)
91. Decode Ways Go Medium O(n) O(n)
96. Unique Binary Search Trees Go Medium O(n) O(n)
120. Triangle Go Medium O(n^2) O(n)
121. Best Time to Buy and Sell Stock Go Easy O(n) O(1)
152. Maximum Product Subarray Go Medium O(n) O(1)
198. House Robber Go Easy O(n) O(n)
213. House Robber II Go Medium O(n) O(n)
300. Longest Increasing Subsequence Go Medium O(n log n) O(n)
309. Best Time to Buy and Sell Stock with Cooldown Go Medium O(n) O(n)
322. Coin Change Go Medium O(n) O(n)
338. Counting Bits Go Medium O(n) O(n)
343. Integer Break Go Medium O(n^2) O(n)
357. Count Numbers with Unique Digits Go Medium O(1) O(1)
392. Is Subsequence Go Medium O(n) O(1)
416. Partition Equal Subset Sum Go Medium O(n^2) O(n)
714. Best Time to Buy and Sell Stock with Transaction Fee Go Medium O(n) O(1)
746. Min Cost Climbing Stairs Go Easy O(n) O(1)
838. Push Dominoes Go Medium O(n) O(n)
1025. Divisor Game Go Easy O(1) O(1)
891. Sum of Subsequence Widths Go Hard O(n log n) O(1)
942. DI String Match Go Easy O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Backtracking

  • 排列问题 Permutations。第 46 题,第 47 题。第 60 题,第 526 题,第 996 题。
  • 组合问题 Combination。第 39 题,第 40 题,第 77 题,第 216 题。
  • 排列和组合杂交问题。第 1079 题。
  • N 皇后终极解法(二进制解法)。第 51 题,第 52 题。
  • 数独问题。第 37 题。
  • 四个方向搜索。第 79 题,第 212 题,第 980 题。
  • 子集合问题。第 78 题,第 90 题。
  • Trie。第 208 题,第 211 题。
  • BFS 优化。第 126 题,第 127 题。
  • DFS 模板。(只是一个例子,不对应任何题)
func combinationSum2(candidates []int, target int) [][]int {
	if len(candidates) == 0 {
		return [][]int{}
	}
	c, res := []int{}, [][]int{}
	sort.Ints(candidates)
	findcombinationSum2(candidates, target, 0, c, &res)
	return res
}

func findcombinationSum2(nums []int, target, index int, c []int, res *[][]int) {
	if target == 0 {
		b := make([]int, len(c))
		copy(b, c)
		*res = append(*res, b)
		return
	}
	for i := index; i < len(nums); i++ {
		if i > index && nums[i] == nums[i-1] { // 这里是去重的关键逻辑
			continue
		}
		if target >= nums[i] {
			c = append(c, nums[i])
			findcombinationSum2(nums, target-nums[i], i+1, c, res)
			c = c[:len(c)-1]
		}
	}
}
  • BFS 模板。(只是一个例子,不对应任何题)
func updateMatrix_BFS(matrix [][]int) [][]int {
	res := make([][]int, len(matrix))
	if len(matrix) == 0 || len(matrix[0]) == 0 {
		return res
	}
	queue := make([][]int, 0)
	for i, _ := range matrix {
		res[i] = make([]int, len(matrix[0]))
		for j, _ := range res[i] {
			if matrix[i][j] == 0 {
				res[i][j] = -1
				queue = append(queue, []int{i, j})
			}
		}
	}
	level := 1
	for len(queue) > 0 {
		size := len(queue)
		for size > 0 {
			size -= 1
			node := queue[0]
			queue = queue[1:]
			i, j := node[0], node[1]
			for _, direction := range [][]int{{-1, 0}, {1, 0}, {0, 1}, {0, -1}} {
				x := i + direction[0]
				y := j + direction[1]
				if x < 0 || x >= len(matrix) || y < 0 || y >= len(matrix[0]) || res[x][y] < 0 || res[x][y] > 0 {
					continue
				}
				res[x][y] = level
				queue = append(queue, []int{x, y})
			}
		}
		level++
	}
	for i, row := range res {
		for j, cell := range row {
			if cell == -1 {
				res[i][j] = 0
			}
		}
	}
	return res
}
Title Solution Difficulty Time Space 收藏
17. Letter Combinations of a Phone Number Go Medium O(log n) O(1)
22. Generate Parentheses Go Medium O(log n) O(1)
37. Sudoku Solver Go Hard O(n^2) O(n^2) ❤️
39. Combination Sum Go Medium O(n log n) O(n)
40. Combination Sum II Go Medium O(n log n) O(n)
46. Permutations Go Medium O(n) O(n) ❤️
47. Permutations II Go Medium O(n^2) O(n) ❤️
51. N-Queens Go Hard O(n^2) O(n) ❤️
52. N-Queens II Go Hard O(n^2) O(n) ❤️
60. Permutation Sequence Go Medium O(n log n) O(1)
77. Combinations Go Medium O(n) O(n) ❤️
78. Subsets Go Medium O(n^2) O(n) ❤️
79. Word Search Go Medium O(n^2) O(n^2) ❤️
89. Gray Codes Go Medium O(n) O(1)
90. Subsets II Go Medium O(n^2) O(n) ❤️
93. Restore IP Addresses Go Medium O(n) O(n) ❤️
126. Word Ladder II Go Hard O(n) O(n^2) ❤️
131. Palindrome Partitioning Go Medium O(n) O(n^2) ❤️
211. Add and Search Word - Data structure design Go Medium O(n) O(n) ❤️
212. Word Search II Go Hard O(n^2) O(n^2) ❤️
216. Combination Sum III Go Medium O(n) O(1) ❤️
306. Additive Number Go Medium O(n^2) O(1) ❤️
357. Count Numbers with Unique Digits Go Medium O(1) O(1)
401. Binary Watch Go Easy O(1) O(1)
526. Beautiful Arrangement Go Medium O(n^2) O(1) ❤️
784. Letter Case Permutation Go Easy O(n) O(n)
842. Split Array into Fibonacci Sequence Go Medium O(n^2) O(1) ❤️
980. Unique Paths III Go Hard O(n log n) O(n)
996. Number of Squareful Arrays Go Hard O(n log n) O(n)
1079. Letter Tile Possibilities Go Medium O(n^2) O(1) ❤️
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Depth-first Search

Title Solution Difficulty Time Space 收藏
98. Validate Binary Search Tree Go Medium O(n) O(1)
99. Recover Binary Search Tree Go Hard O(n) O(1)
100. Same Tree Go Easy O(n) O(1)
101. Symmetric Tree Go Easy O(n) O(1)
104. Maximum Depth of Binary Tree Go Easy O(n) O(1)
108. Convert Sorted Array to Binary Search Tree Go Easy O(n) O(1)
109. Convert Sorted List to Binary Search Tree Go Medium O(log n) O(n)
110. Balanced Binary Tree Go Easy O(n) O(1)
111. Minimum Depth of Binary Tree Go Easy O(n) O(1)
112. Path Sum Go Easy O(n) O(1)
113. Path Sum II Go Medium O(n) O(1)
114. Flatten Binary Tree to Linked List Go Medium O(n) O(1)
124. Binary Tree Maximum Path Sum Go Hard O(n) O(1)
129. Sum Root to Leaf Numbers Go Medium O(n) O(1)
199. Binary Tree Right Side View Go Medium O(n) O(1)
200. Number of Islands Go Medium O(n^2) O(n^2)
207. Course Schedule Go Medium O(n^2) O(n^2)
210. Course Schedule II Go Medium O(n^2) O(n^2)
257. Binary Tree Paths Go Easy O(n) O(1)
394. Decode String Go Medium O(n) O(n)
515. Find Largest Value in Each Tree Row Go Medium O(n) O(n)
542. 01 Matrix Go Medium O(n) O(1)
980. Unique Paths III Go Hard O(n log n) O(n)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Breadth-first Search

Title Solution Difficulty Time Space 收藏
101. Symmetric Tree Go Easy O(n) O(1)
102. Binary Tree Level Order Traversal Go Medium O(n) O(1)
103. Binary Tree Zigzag Level Order Traversal Go Medium O(n) O(n)
107. Binary Tree Level Order Traversal II Go Easy O(n) O(1)
111. Minimum Depth of Binary Tree Go Easy O(n) O(1)
126. Word Ladder II Go Hard O(n) O(n^2) ❤️
127. Word Ladder Go Medium O(n) O(n)
199. Binary Tree Right Side View Go Medium O(n) O(1)
200. Number of Islands Go Medium O(n^2) O(n^2)
207. Course Schedule Go Medium O(n^2) O(n^2)
210. Course Schedule II Go Medium O(n^2) O(n^2)
515. Find Largest Value in Each Tree Row Go Medium O(n) O(n)
542. 01 Matrix Go Medium O(n) O(1)
993. Cousins in Binary Tree Go Easy O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Binary Search

  • 二分搜索的经典写法。需要注意的三点:
    1. 循环退出条件,注意是 low <= high,而不是 low < high。
    2. mid 的取值,mid := low + (high-low)>>1
    3. low 和 high 的更新。low = mid + 1,high = mid - 1。
func binarySearchMatrix(nums []int, target int) int {
	low, high := 0, len(nums)-1
	for low <= high {
		mid := low + (high-low)>>1
		if nums[mid] == target {
			return mid
		} else if nums[mid] > target {
			high = mid - 1
		} else {
			low = mid + 1
		}
	}
	return -1
}
  • 二分搜索的变种写法。有 4 个基本变种:
    1. 查找第一个与 target 相等的元素,时间复杂度 O(logn)
    2. 查找最后一个与 target 相等的元素,时间复杂度 O(logn)
    3. 查找第一个大于等于 target 的元素,时间复杂度 O(logn)
    4. 查找最后一个小于等于 target 的元素,时间复杂度 O(logn)
// 二分查找第一个与 target 相等的元素,时间复杂度 O(logn)
func searchFirstEqualElement(nums []int, target int) int {
	low, high := 0, len(nums)-1
	for low <= high {
		mid := low + ((high - low) >> 1)
		if nums[mid] > target {
			high = mid - 1
		} else if nums[mid] < target {
			low = mid + 1
		} else {
			if (mid == 0) || (nums[mid-1] != target) { // 找到第一个与 target 相等的元素
				return mid
			}
			high = mid - 1
		}
	}
	return -1
}

// 二分查找最后一个与 target 相等的元素,时间复杂度 O(logn)
func searchLastEqualElement(nums []int, target int) int {
	low, high := 0, len(nums)-1
	for low <= high {
		mid := low + ((high - low) >> 1)
		if nums[mid] > target {
			high = mid - 1
		} else if nums[mid] < target {
			low = mid + 1
		} else {
			if (mid == len(nums)-1) || (nums[mid+1] != target) { // 找到最后一个与 target 相等的元素
				return mid
			}
			low = mid + 1
		}
	}
	return -1
}

// 二分查找第一个大于等于 target 的元素,时间复杂度 O(logn)
func searchFirstGreaterElement(nums []int, target int) int {
	low, high := 0, len(nums)-1
	for low <= high {
		mid := low + ((high - low) >> 1)
		if nums[mid] >= target {
			if (mid == 0) || (nums[mid-1] < target) { // 找到第一个大于等于 target 的元素
				return mid
			}
			high = mid - 1
		} else {
			low = mid + 1
		}
	}
	return -1
}

// 二分查找最后一个小于等于 target 的元素,时间复杂度 O(logn)
func searchLastLessElement(nums []int, target int) int {
	low, high := 0, len(nums)-1
	for low <= high {
		mid := low + ((high - low) >> 1)
		if nums[mid] <= target {
			if (mid == len(nums)-1) || (nums[mid+1] > target) { // 找到最后一个小于等于 target 的元素
				return mid
			}
			low = mid + 1
		} else {
			high = mid - 1
		}
	}
	return -1
}
  • 在基本有序的数组中用二分搜索。经典解法可以解,变种写法也可以写,常见的题型,在山峰数组中找山峰,在旋转有序数组中找分界点。第 33 题,第 81 题,第 153 题,第 154 题,第 162 题,第 852 题
func peakIndexInMountainArray(A []int) int {
	low, high := 0, len(A)-1
	for low < high {
		mid := low + (high-low)>>1
		// 如果 mid 较大,则左侧存在峰值,high = m,如果 mid + 1 较大,则右侧存在峰值,low = mid + 1
		if A[mid] > A[mid+1] {
			high = mid
		} else {
			low = mid + 1
		}
	}
	return low
}
  • max-min 最大值最小化问题。求在最小满足条件的情况下的最大值。第 410 题,第 875 题,第 1011 题,第 1283 题。
Title Solution Difficulty Time Space 收藏
50. Pow(x, n) Go Medium O(log n) O(1)
69. Sqrt(x) Go Easy O(log n) O(1)
167. Two Sum II - Input array is sorted Go Easy O(n) O(1)
209. Minimum Size Subarray Sum Go Medium O(n) O(1)
222. Count Complete Tree Nodes Go Medium O(n) O(1)
230. Kth Smallest Element in a BST Go Medium O(n) O(1)
287. Find the Duplicate Number Go Easy O(n) O(1) ❤️
300. Longest Increasing Subsequence Go Medium O(n log n) O(n)
349. Intersection of Two Arrays Go Easy O(n) O(n)
350. Intersection of Two Arrays II Go Easy O(n) O(n)
392. Is Subsequence Go Medium O(n) O(1)
454. 4Sum II Go Medium O(n^2) O(n)
710. Random Pick with Blacklist Go Hard O(n) O(n)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Math

Title Solution Difficulty Time Space 收藏
2. Add Two Numbers Go Medium O(n) O(1)
50. Pow(x, n) Go Medium O(log n) O(1)
60. Permutation Sequence Go Medium O(n log n) O(1)
69. Sqrt(x) Go Easy O(log n) O(1)
202. Happy Number Go Easy O(log n) O(1)
224. Basic Calculator Go Hard O(n) O(n)
231. Power of Two Go Easy O(1) O(1)
263. Ugly Number Go Easy O(log n) O(1)
326. Power of Three Go Easy O(1) O(1)
343. Integer Break Go Medium O(n^2) O(n)
357. Count Numbers with Unique Digits Go Medium O(1) O(1)
628. Maximum Product of Three Numbers Go Easy O(n) O(1)
885. Spiral Matrix III Go Medium O(n^2) O(1)
891. Sum of Subsequence Widths Go Hard O(n log n) O(1)
942. DI String Match Go Easy O(n) O(1)
976. Largest Perimeter Triangle Go Easy O(n log n) O(log n)
996. Number of Squareful Arrays Go Hard O(n log n) O(n)
1025. Divisor Game Go Easy O(1) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Hash Table

Title Solution Difficulty Time Space 收藏
1. Two Sum Go Easy O(n) O(n)
3. Longest Substring Without Repeating Characters Go Medium O(n) O(1) ❤️
18. 4Sum Go Medium O(n^3) O(n^2) ❤️
30. Substring with Concatenation of All Words Go Hard O(n) O(n) ❤️
36. Valid Sudoku Go Medium O(n^2) O(n^2)
37. Sudoku Solver Go Hard O(n^2) O(n^2) ❤️
49. Group Anagrams Go Medium O(n log n) O(n)
76. Minimum Window Substring Go Hard O(n) O(n) ❤️
94. Binary Tree Inorder Traversal Go Medium O(n) O(1)
138. Copy List with Random Pointer Go Medium O(n) O(1)
202. Happy Number Go Easy O(log n) O(1)
205. Isomorphic Strings Go Easy O(log n) O(n)
217. Contains Duplicate Go Easy O(n) O(n)
219. Contains Duplicate II Go Easy O(n) O(n)
242. Valid Anagram Go Easy O(n) O(n)
274. H-Index Go Medium O(n) O(n)
290. Word Pattern Go Easy O(n) O(n)
347. Top K Frequent Elements Go Medium O(n) O(n)
349. Intersection of Two Arrays Go Easy O(n) O(n)
350. Intersection of Two Arrays II Go Easy O(n) O(n)
438. Find All Anagrams in a String Go Easy O(n) O(1)
447. Number of Boomerangs Go Easy O(n) O(1)
451. Sort Characters By Frequency Go Medium O(n log n) O(1)
454. 4Sum II Go Medium O(n^2) O(n)
648. Replace Words Go Medium O(n) O(n)
676. Implement Magic Dictionary Go Medium O(n) O(n)
720. Longest Word in Dictionary Go Easy O(n) O(n)
726. Number of Atoms Go Hard O(n) O(n) ❤️
739. Daily Temperatures Go Medium O(n) O(n)
710. Random Pick with Blacklist Go Hard O(n) O(n)
895. Maximum Frequency Stack Go Hard O(n) O(n)
930. Binary Subarrays With Sum Go Medium O(n) O(n) ❤️
992. Subarrays with K Different Integers Go Hard O(n) O(n) ❤️
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Sort

  • 深刻的理解多路快排。第 75 题。
  • 链表的排序,插入排序(第 147 题)和归并排序(第 148 题)
  • 桶排序和基数排序。第 164 题。
  • "摆动排序"。第 324 题。
  • 两两不相邻的排序。第 767 题,第 1054 题。
  • "饼子排序"。第 969 题。
Title Solution Difficulty Time Space 收藏
56. Merge Intervals Go Medium O(n log n) O(log n)
57. Insert Interval Go Hard O(n) O(1)
75. Sort Colors Go Medium O(n) O(1) ❤️
147. Insertion Sort List Go Medium O(n) O(1) ❤️
148. Sort List Go Medium O(n log n) O(log n) ❤️
164. Maximum Gap Go Hard O(n log n) O(log n) ❤️
179. Largest Number Go Medium O(n log n) O(log n) ❤️
220. Contains Duplicate III Go Medium O(n log n) O(1) ❤️
242. Valid Anagram Go Easy O(n) O(n)
274. H-Index Go Medium O(n) O(n)
324. Wiggle Sort II Go Medium O(n) O(n) ❤️
349. Intersection of Two Arrays Go Easy O(n) O(n)
350. Intersection of Two Arrays II Go Easy O(n) O(n)
524. Longest Word in Dictionary through Deleting Go Medium O(n) O(1)
767. Reorganize String Go Medium O(n log n) O(log n) ❤️
853. Car Fleet Go Medium O(n log n) O(log n)
710. Random Pick with Blacklist Go Hard O(n) O(n)
922. Sort Array By Parity II Go Easy O(n) O(1)
969. Pancake Sorting Go Medium O(n log n) O(log n) ❤️
973. K Closest Points to Origin Go Medium O(n log n) O(log n)
976. Largest Perimeter Triangle Go Easy O(n log n) O(log n)
1030. Matrix Cells in Distance Order Go Easy O(n^2) O(1)
1054. Distant Barcodes Go Medium O(n log n) O(log n) ❤️
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Bit Manipulation

  • 异或的特性。第 136 题,第 268 题,第 389 题,第 421 题,
x ^ 0 = x
x ^ 11111……1111 = ~x
x ^ (~x) = 11111……1111
x ^ x = 0
a ^ b = c  => a ^ c = b  => b ^ c = a (交换律)
a ^ b ^ c = a ^ (b ^ c) = (a ^ b^ c (结合律)
  • 构造特殊 Mask,将特殊位置放 0 或 1。
 x 最右边的 n 位清零x & ( ~0 << n )
获取 x 的第 n 位值(0 或者 1),(x >> n) & 1
获取 x 的第 n 位的幂值x & (1 << (n - 1))
仅将第 n 位置为 1x | (1 << n)
仅将第 n 位置为 0x & (~(1 << n))
 x 最高位至第 n ()清零x & ((1 << n) - 1)
将第 n 位至第 0 ()清零x & (~((1 << (n + 1)) - 1))
  • 有特殊意义的 & 位操作运算。第 260 题,第 201 题,第 318 题,第 371 题,第 397 题,第 461 题,第 693 题,
X & 1 == 1 判断是否是奇数(偶数)
X & = (X - 1) 将最低位(LSB) 1 清零
X & -X 得到最低位(LSB) 1
X & ~X = 0
Title Solution Difficulty Time Space 收藏
78. Subsets Go Medium O(n^2) O(n) ❤️
136. Single Number Go Easy O(n) O(1)
137. Single Number II Go Medium O(n) O(1) ❤️
169. Majority Element Go Easy O(n) O(1) ❤️
187. Repeated DNA Sequences Go Medium O(n) O(1)
190. Reverse Bits Go Easy O(n) O(1) ❤️
191. Number of 1 Bits Go Easy O(n) O(1)
201. Bitwise AND of Numbers Range Go Medium O(n) O(1) ❤️
231. Power of Two Go Easy O(1) O(1)
260. Single Number III Go Medium O(n) O(1) ❤️
268. Missing Number Go Easy O(n) O(1)
318. Maximum Product of Word Lengths Go Medium O(n) O(1)
338. Counting Bits Go Medium O(n) O(n)
342. Power of Four Go Easy O(n) O(1)
371. Sum of Two Integers Go Easy O(n) O(1)
389. Find the Difference Go Easy O(n) O(1)
393. UTF-8 Validation Go Medium O(n) O(1)
397. Integer Replacement Go Medium O(n) O(1)
401. Binary Watch Go Easy O(1) O(1)
405. Convert a Number to Hexadecimal Go Easy O(n) O(1)
421. Maximum XOR of Two Numbers in an Array Go Medium O(n) O(1) ❤️
461. Hamming Distance Go Easy O(n) O(1)
476. Number Complement Go Easy O(n) O(1)
477. Total Hamming Distance Go Medium O(n) O(1)
693. Binary Number with Alternating Bits Go Easy O(n) O(1) ❤️
756. Pyramid Transition Matrix Go Medium O(n log n) O(n)
762. Prime Number of Set Bits in Binary Representation Go Easy O(n) O(1)
784. Letter Case Permutation Go Easy O(n) O(1)
898. Bitwise ORs of Subarrays Go Medium O(n) O(1)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Union Find

  • 灵活使用并查集的思想,熟练掌握并查集的模板,模板中有两种并查集的实现方式,一种是路径压缩 + 秩优化的版本,另外一种是计算每个集合中元素的个数 + 最大集合元素个数的版本,这两种版本都有各自使用的地方。能使用第一类并查集模板的题目有:第 128 题,第 130 题,第 547 题,第 684 题,第 721 题,第 765 题,第 778 题,第 839 题,第 924 题,第 928 题,第 947 题,第 952 题,第 959 题,第 990 题。能使用第二类并查集模板的题目有:第 803 题,第 952 题。第 803 题秩优化和统计集合个数这些地方会卡时间,如果不优化,会 TLE。
  • 并查集是一种思想,有些题需要灵活使用这种思想,而不是死套模板,如第 399 题,这一题是 stringUnionFind,利用并查集思想实现的。这里每个节点是基于字符串和 map 的,而不是单纯的用 int 节点编号实现的。
  • 有些题死套模板反而做不出来,比如第 685 题,这一题不能路径压缩和秩优化,因为题目中涉及到有向图,需要知道节点的前驱节点,如果路径压缩了,这一题就没法做了。这一题不需要路径压缩和秩优化。
  • 灵活的抽象题目给的信息,将给定的信息合理的编号,使用并查集解题,并用 map 降低时间复杂度,如第 721 题,第 959 题。
  • 关于地图,砖块,网格的题目,可以新建一个特殊节点,将四周边缘的砖块或者网格都 union() 到这个特殊节点上。第 130 题,第 803 题。
  • 能用并查集的题目,一般也可以用 DFS 和 BFS 解答,只不过时间复杂度会高一点。
Title Solution Difficulty Time Space 收藏
128. Longest Consecutive Sequence Go Hard O(n) O(n) ❤️
130. Surrounded Regions Go Medium O(m*n) O(m*n)
200. Number of Islands Go Medium O(m*n) O(m*n)
399. Evaluate Division Go Medium O(n) O(n)
547. Friend Circles Go Medium O(n^2) O(n)
684. Redundant Connection Go Medium O(n) O(n)
685. Redundant Connection II Go Hard O(n) O(n)
721. Accounts Merge Go Medium O(n) O(n) ❤️
765. Couples Holding Hands Go Hard O(n) O(n) ❤️
778. Swim in Rising Water Go Hard O(n^2) O(n) ❤️
803. Bricks Falling When Hit Go Hard O(n^2) O(n) ❤️
839. Similar String Groups Go Hard O(n^2) O(n)
924. Minimize Malware Spread Go Hard O(m*n) O(n)
928. Minimize Malware Spread II Go Hard O(m*n) O(n) ❤️
947. Most Stones Removed with Same Row or Column Go Medium O(n) O(n)
952. Largest Component Size by Common Factor Go Hard O(n) O(n) ❤️
959. Regions Cut By Slashes Go Medium O(n^2) O(n^2) ❤️
990. Satisfiability of Equality Equations Go Medium O(n) O(n)
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Sliding Window

  • 双指针滑动窗口的经典写法。右指针不断往右移,移动到不能往右移动为止(具体条件根据题目而定)。当右指针到最右边以后,开始挪动左指针,释放窗口左边界。第 3 题,第 76 题,第 209 题,第 424 题,第 438 题,第 567 题,第 713 题,第 763 题,第 845 题,第 881 题,第 904 题,第 978 题,第 992 题,第 1004 题,第 1040 题,第 1052 题。
	left, right := 0, -1

	for left < len(s) {
		if right+1 < len(s) && freq[s[right+1]-'a'] == 0 {
			freq[s[right+1]-'a']++
			right++
		} else {
			freq[s[left]-'a']--
			left++
		}
		result = max(result, right-left+1)
	}
  • 滑动窗口经典题。第 239 题,第 480 题。
Title Solution Difficulty Time Space 收藏
3. Longest Substring Without Repeating Characters Go Medium O(n) O(1) ❤️
76. Minimum Window Substring Go Hard O(n) O(n) ❤️
239. Sliding Window Maximum Go Hard O(n * k) O(n) ❤️
424. Longest Repeating Character Replacement Go Medium O(n) O(1)
480. Sliding Window Median Go Hard O(n * log k) O(k) ❤️
567. Permutation in String Go Medium O(n) O(1) ❤️
978. Longest Turbulent Subarray Go Medium O(n) O(1) ❤️
992. Subarrays with K Different Integers Go Hard O(n) O(n) ❤️
995. Minimum Number of K Consecutive Bit Flips Go Hard O(n) O(1) ❤️
1004. Max Consecutive Ones III Go Medium O(n) O(1)
1040. Moving Stones Until Consecutive II Go Medium O(n log n) O(1) ❤️
1052. Grumpy Bookstore Owner Go Medium O(n log n) O(1)
1074. Number of Submatrices That Sum to Target Go Hard O(n^3) O(n) ❤️
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Segment Tree

  • 线段数的经典数组实现写法。将合并两个节点 pushUp 逻辑抽象出来了,可以实现任意操作(常见的操作有:加法,取 max,min 等等)。第 218 题,第 303 题,第 307 题,第 699 题。
  • 计数线段树的经典写法。第 315 题,第 327 题,第 493 题。
  • 线段树的树的实现写法。第 715 题,第 732 题。
  • 区间懒惰更新。第 218 题,第 699 题。
  • 离散化。离散化需要注意一个特殊情况:假如三个区间为 [1,10] [1,4] [6,10],离散化后 x[1]=1,x[2]=4,x[3]=6,x[4]=10。第一个区间为 [1,4],第二个区间为 [1,2],第三个区间为 [3,4],这样一来,区间一 = 区间二 + 区间三,这和离散前的模型不符,离散前,很明显,区间一 > 区间二 + 区间三。正确的做法是:在相差大于 1 的数间加一个数,例如在上面 1 4 6 10 中间加 5,即可 x[1]=1,x[2]=4,x[3]=5,x[4]=6,x[5]=10。这样处理之后,区间一是 1-5 ,区间二是 1-2 ,区间三是 4-5 。
  • 灵活构建线段树。线段树节点可以存储多条信息,合并两个节点的 pushUp 操作也可以是多样的。第 850 题,第 1157 题。

线段树题型从简单到困难:

  1. 单点更新:
    HDU 1166 敌兵布阵 update:单点增减 query:区间求和
    HDU 1754 I Hate It update:单点替换 query:区间最值
    HDU 1394 Minimum Inversion Number update:单点增减 query:区间求和
    HDU 2795 Billboard query:区间求最大值的位子(直接把update的操作在query里做了)
  2. 区间更新:
    HDU 1698 Just a Hook update:成段替换 (由于只query一次总区间,所以可以直接输出 1 结点的信息)
    POJ 3468 A Simple Problem with Integers update:成段增减 query:区间求和
    POJ 2528 Mayor’s posters 离散化 + update:成段替换 query:简单hash
    POJ 3225 Help with Intervals update:成段替换,区间异或 query:简单hash
  3. 区间合并(这类题目会询问区间中满足条件的连续最长区间,所以PushUp的时候需要对左右儿子的区间进行合并):
    POJ 3667 Hotel update:区间替换 query:询问满足条件的最左端点
  4. 扫描线(这类题目需要将一些操作排序,然后从左到右用一根扫描线扫过去最典型的就是矩形面积并,周长并等题):
    HDU 1542 Atlantis update:区间增减 query:直接取根节点的值
    HDU 1828 Picture update:区间增减 query:直接取根节点的值
Title Solution Difficulty Time Space 收藏
218. The Skyline Problem Go Hard O(n log n) O(n) ❤️
307. Range Sum Query - Mutable Go Hard O(1) O(n)
315. Count of Smaller Numbers After Self Go Hard O(n log n) O(n)
327. Count of Range Sum Go Hard O(n log n) O(n) ❤️
493. Reverse Pairs Go Hard O(n log n) O(n)
699. Falling Squares Go Hard O(n log n) O(n) ❤️
715. Range Module Go Hard O(log n) O(n) ❤️
732. My Calendar III Go Hard O(log n) O(n) ❤️
850. Rectangle Area II Go Hard O(n log n) O(n) ❤️
1157. Online Majority Element In Subarray Go Hard O(log n) O(n) ❤️
----------------------------------------------------------------- ------------- ------------- -------------------------- -------------------------- -------------

Binary Indexed Tree


About

✅ Solutions to LeetCode by Go, 100% test coverage, runtime beats 100% / LeetCode 题解

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 66.6%
  • HTML 31.5%
  • CSS 1.4%
  • JavaScript 0.5%