xusiwei / leetcode

solutions of problems on LeetCode

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

What's LeetCode?

from leetcode.com:

LeetCode OJ is a platform for preparing technical coding interviews. Pick from an expanding library of more than 190 questions, code and submit your solution to see if you have solved it correctly. It is that easy!

Problems & Solutions

Here's my solutions of leetcode problems, and I'll keep it up to date. If you have any ideas about my solution, welcome to post a comment.

(tip: πŸ”’ means you need to buy a book from LeetCode)

Algorithms category

# Title Solutions Difficulty
1 Two Sum C++ Medium
2 Add Two Numbers C++ Medium
3 Longest Substring Without Repeating Characters C++ Medium
4 Median of Two Sorted Arrays C Hard
5 Longest Palindromic Substring C++ Medium
6 ZigZag Conversion C++ Easy
7 Reverse Integer C++ Easy
8 String to Integer (atoi) C++ Easy
9 Palindrome Number C++ Easy
10 Regular Expression Matching C Hard
11 Container With Most Water C++ Medium
12 Integer to Roman C++ Medium
13 Roman to Integer C++ Easy
14 Longest Common Prefix C++ Easy
15 3Sum C++ Medium
16 3Sum Closest C++ Medium
17 Letter Combinations of a Phone Number C++ Medium
18 4Sum C++ Medium
19 Remove Nth Node From End of List C++ Easy
20 Valid Parentheses C++ Easy
21 Merge Two Sorted Lists C++ Easy
22 Generate Parentheses C++ Medium
23 Merge k Sorted Lists C++ Hard
24 Swap Nodes in Pairs C++ Medium
25 Reverse Nodes in k-Group C++ Hard
26 Remove Duplicates from Sorted Array C++ Easy
27 Remove Element C++ Easy
28 Implement strStr() C Easy
29 Divide Two Integers C Medium
30 Substring with Concatenation of All Words C++ Hard
31 Next Permutation C++ Medium
32 Longest Valid Parentheses C++ Hard
33 Search in Rotated Sorted Array C++ Hard
34 Search for a Range C++ Medium
35 Search Insert Position C++ Medium
36 Valid Sudoku C++ Easy
37 Sudoku Solver C++ Hard
38 Count and Say C++ Easy
39 Combination Sum C++ Medium
40 Combination Sum II C++ Medium
41 First Missing Positive C++ Hard
42 Trapping Rain Water C++ Hard
43 Multiply Strings C++ Medium
44 Wildcard Matching C++ Hard
45 Jump Game II C++ Hard
46 Permutations C++ Medium
47 Permutations II C++ Hard
48 Rotate Image C++ Medium
49 Group Anagrams C++ Medium
50 Pow(x, n) C++ Medium
51 N-Queens C++ Hard
52 N-Queens II C++ Hard
53 Maximum Subarray C++ Medium
54 Spiral Matrix C++ Medium
55 Jump Game C++ Medium
56 Merge Intervals C++ Hard
57 Insert Interval C++ Hard
58 Length of Last Word C++ Easy
59 Spiral Matrix II C++ Medium
60 Permutation Sequence C++ Medium
61 Rotate List C++ Medium
62 Unique Paths C++ Medium
63 Unique Paths II C++ Medium
64 Minimum Path Sum C++ Medium
65 Valid Number C Hard
66 Plus One C++ Easy
67 Add Binary C++ Easy
68 Text Justification C++ Hard
69 Sqrt(x) C++ Medium
70 Climbing Stairs C++ Easy
71 Simplify Path C++ Medium
72 Edit Distance C++ Hard
73 Set Matrix Zeroes C++ Medium
74 Search a 2D Matrix C++ Medium
75 Sort Colors C++ Medium
76 Minimum Window Substring C++ Hard
77 Combinations C++ Medium
78 Subsets C++ Medium
79 Word Search C++ Medium
80 Remove Duplicates from Sorted Array II C++ Medium
81 Search in Rotated Sorted Array II C++ Medium
82 Remove Duplicates from Sorted List II C++ Medium
83 Remove Duplicates from Sorted List C++ Easy
84 Largest Rectangle in Histogram C++ Hard
85 Maximal Rectangle C++ Hard
86 Partition List C++ Medium
87 Scramble String C++ Hard
88 Merge Sorted Array C++ Easy
89 Gray Code C++ Medium
90 Subsets II C++ Medium
91 Decode Ways C++ Medium
92 Reverse Linked List II C++ Medium
93 Restore IP Addresses C++ Medium
94 Binary Tree Inorder Traversal C++ Medium
95 Unique Binary Search Trees II C++ Medium
96 Unique Binary Search Trees C++ Medium
97 Interleaving String C++ Hard
98 Validate Binary Search Tree C++ Medium
99 Recover Binary Search Tree C++ Hard
100 Same Tree C++ Easy
101 Symmetric Tree C++ Easy
102 Binary Tree Level Order Traversal C++ Easy
103 Binary Tree Zigzag Level Order Traversal C++ Medium
104 Maximum Depth of Binary Tree C++ Easy
105 Construct Binary Tree from Preorder and Inorder Traversal C++ Medium
106 Construct Binary Tree from Inorder and Postorder Traversal C++ Medium
107 Binary Tree Level Order Traversal II C++ Easy
108 Convert Sorted Array to Binary Search Tree C++ Medium
109 Convert Sorted List to Binary Search Tree C++ Medium
110 Balanced Binary Tree C++ Easy
111 Minimum Depth of Binary Tree C++ Easy
112 Path Sum C++ Easy
113 Path Sum II C++ Medium
114 Flatten Binary Tree to Linked List C++ Medium
115 Distinct Subsequences C++ Hard
116 Populating Next Right Pointers in Each Node C++ Medium
117 Populating Next Right Pointers in Each Node II C++ Hard
118 Pascal's Triangle C++ Easy
119 Pascal's Triangle II C++ Easy
120 Triangle C++ Medium
121 Best Time to Buy and Sell Stock C++ Medium
122 Best Time to Buy and Sell Stock II C++ Medium
123 Best Time to Buy and Sell Stock III C++ Hard
124 Binary Tree Maximum Path Sum C++ Hard
125 Valid Palindrome C++ Easy
126 Word Ladder II C++ Hard
127 Word Ladder C++ Medium
128 Longest Consecutive Sequence C++ Hard
129 Sum Root to Leaf Numbers C++ Medium
130 Surrounded Regions C++ Medium
131 Palindrome Partitioning C++ Medium
132 Palindrome Partitioning II C++ Hard
133 Clone Graph C++ Medium
134 Gas Station C++ Medium
135 Candy C++ Hard
136 Single Number C++, C Medium
137 Single Number II C++ Medium
138 Copy List with Random Pointer C++ Hard
139 Word Break C++ Medium
140 Word Break II C++ Hard
141 Linked List Cycle C, C++ Medium
142 Linked List Cycle II C++ Medium
143 Reorder List C Medium
144 Binary Tree Preorder Traversal C++ Medium
145 Binary Tree Postorder Traversal C++ Hard
146 LRU Cache C++, Python Hard
147 Insertion Sort List C Medium
148 Sort List C++ Medium
149 Max Points on a Line C++ Hard
150 Evaluate Reverse Polish Notation C++ Medium
151 Reverse Words in a String C++ Medium
152 Maximum Product Subarray C++ Medium
153 Find Minimum in Rotated Sorted Array C++ Medium
154 Find Minimum in Rotated Sorted Array II C++ Hard
155 Min Stack C++ Easy
156 πŸ”’ Binary Tree Upside Down Medium
157 πŸ”’ Read N Characters Given Read4 Easy
158 πŸ”’ Read N Characters Given Read4 II - Call multiple times Hard
159 πŸ”’ Longest Substring with At Most Two Distinct Characters Hard
160 Intersection of Two Linked Lists C, C++ Easy
161 πŸ”’ One Edit Distance Medium
162 Find Peak Element C++ Medium
163 πŸ”’ Missing Ranges Medium
164 Maximum Gap C++ Hard
165 Compare Version Numbers C++ Easy
166 Fraction to Recurring Decimal C++ Medium
167 Two Sum II - Input array is sorted C++ Medium
168 Excel Sheet Column Title C++ Easy
169 Majority Element C++ Easy
170 πŸ”’ Two Sum III - Data structure design Easy
171 Excel Sheet Column Number C++ Easy
172 Factorial Trailing Zeroes C++ Easy
173 Binary Search Tree Iterator C++ Medium
174 Dungeon Game C++ Hard
179 Largest Number C++ Medium
186 πŸ”’ Reverse Words in a String II Medium
187 Repeated DNA Sequences C++ Medium
188 Best Time to Buy and Sell Stock IV C++ Hard
189 Rotate Array C++ Easy
190 Reverse Bits C Easy
191 Number of 1 Bits C Easy
198 House Robber C++ Easy
199 Binary Tree Right Side View C++ Medium
200 Number of Islands C++ Medium
201 Bitwise AND of Numbers Range C Medium
202 Happy Number C++ Easy
203 Remove Linked List Elements C++ Easy
204 Count Primes C++ Easy
205 Isomorphic Strings C++ Easy
206 Reverse Linked List C++ Easy
207 Course Schedule C++ Medium
208 Implement Trie (Prefix Tree) C++ Medium
209 Minimum Size Subarray Sum C++ Medium
210 Course Schedule II C++ Medium
211 Add and Search Word - Data structure design C++ Medium
212 Word Search II Hard
213 House Robber II Medium
214 Shortest Palindrome Hard
215 Kth Largest Element in an Array C++ Medium
216 Combination Sum III Medium
217 Contains Duplicate C++ Easy
218 The Skyline Problem Hard
219 Contains Duplicate II C++ Easy
220 Contains Duplicate III C++ Medium
226 Invert Binary Tree C++ Easy
231 Power of Two C++ Easy
232 Implement Queue using Stacks C++ Easy
233 Number of Digit One Hard
234 Palindrome Linked List C++ Easy
235 Lowest Common Ancestor of a Binary Search Tree C++ Easy
236 Lowest Common Ancestor of a Binary Tree C++ Medium
237 Delete Node in a Linked List C++ Easy
238 Product of Array Except Self Medium
239 Sliding Window Maximum Hard
240 Search a 2D Matrix II C++ Medium
241 Different Ways to Add Parentheses Medium
242 Valid Anagram C, C++, Java, Python Easy
243 πŸ”’ Shortest Word Distance Easy
244 πŸ”’ Shortest Word Distance II Medium
245 πŸ”’ Shortest Word Distance III Medium
246 πŸ”’ Strobogrammatic Number Easy
247 πŸ”’ Strobogrammatic Number II Medium
248 πŸ”’ Strobogrammatic Number III Hard
249 πŸ”’ Group Shifted Strings Easy
250 πŸ”’ Count Univalue Subtrees Medium
251 πŸ”’ Flatten 2D Vector Medium
252 πŸ”’ Meeting Rooms Easy
253 πŸ”’ Meeting Rooms II Medium
254 πŸ”’ Factor Combinations Medium
255 πŸ”’ Verify Preorder Sequence in Binary Search Tree Medium
256 πŸ”’ Paint House Medium
257 Binary Tree Paths C++ Easy
258 Add Digits C++ Easy
259 πŸ”’ 3Sum Smaller Medium
260 Single Number III c++ Medium
261 πŸ”’ Graph Valid Tree Medium
263 Ugly Number Easy
264 Ugly Number II Medium
265 πŸ”’ Paint House II Hard
266 πŸ”’ Palindrome Permutation Easy
267 πŸ”’ Palindrome Permutation II Medium
268 Missing Number Medium
269 πŸ”’ Alien Dictionary Hard
270 πŸ”’ Closest Binary Search Tree Value Easy
271 πŸ”’ Encode and Decode Strings Medium
272 πŸ”’ Closest Binary Search Tree Value II Hard
273 Integer to English Words Hard
274 H-Index C++ Medium
275 H-Index II Medium
276 πŸ”’ Paint Fence Easy
277 πŸ”’ Find the Celebrity Medium
278 First Bad Version Easy
279 Perfect Squares Medium
280 πŸ”’ Wiggle Sort Medium
281 πŸ”’ Zigzag Iterator Medium
282 Expression Add Operators Hard
283 Move Zeroes Easy
284 Peeking Iterator Medium
285 πŸ”’ Inorder Successor in BST Medium
286 πŸ”’ Walls and Gates Medium
287 Find the Duplicate Number Hard
288 πŸ”’ Unique Word Abbreviation Easy
289 Game of Life Medium
290 Word Pattern Easy
291 πŸ”’ Word Pattern II Hard
292 Nim Game Easy
293 πŸ”’ Flip Game Easy
294 πŸ”’ Flip Game II Medium
295 Find Median from Data Stream Hard
296 πŸ”’ Best Meeting Point Hard
297 Serialize and Deserialize Binary Tree Hard
298 πŸ”’ Binary Tree Longest Consecutive Sequence Medium
299 Bulls and Cows Easy
300 Longest Increasing Subsequence Medium
301 Remove Invalid Parentheses Hard
302 πŸ”’ Smallest Rectangle Enclosing Black Pixels Hard
303 Range Sum Query - Immutable Easy
304 Range Sum Query 2D - Immutable Medium
305 πŸ”’ Number of Islands II Hard
306 Additive Number Medium
307 Range Sum Query - Mutable Medium
308 πŸ”’ Range Sum Query 2D - Mutable Hard
309 Best Time to Buy and Sell Stock with Cooldown Medium
310 Minimum Height Trees Medium
311 πŸ”’ Sparse Matrix Multiplication Medium
312 Burst Balloons Hard
313 Super Ugly Number Medium
314 πŸ”’ Binary Tree Vertical Order Traversal Medium
315 Count of Smaller Numbers After Self Hard
316 Remove Duplicate Letters Hard
317 πŸ”’ Shortest Distance from All Buildings Hard
318 Maximum Product of Word Lengths Medium
319 Bulb Switcher Medium
320 πŸ”’ Generalized Abbreviation Medium
321 Create Maximum Number Hard
322 Coin Change Medium
323 πŸ”’ Number of Connected Components in an Undirected Graph Medium
324 Wiggle Sort II Medium
325 πŸ”’ Maximum Size Subarray Sum Equals k Medium
326 Power of Three Easy
327 Count of Range Sum Hard
328 Odd Even Linked List Medium
329 Longest Increasing Path in a Matrix Hard
330 Patching Array Hard
331 Verify Preorder Serialization of a Binary Tree Medium
332 Reconstruct Itinerary Medium
333 πŸ”’ Largest BST Subtree Medium
334 Increasing Triplet Subsequence Medium
335 Self Crossing Hard
336 Palindrome Pairs Hard
337 House Robber III Medium
338 Counting Bits Medium
339 πŸ”’ Nested List Weight Sum Easy
340 πŸ”’ Longest Substring with At Most K Distinct Characters Hard
341 Flatten Nested List Iterator Medium
342 Power of Four Easy
343 Integer Break Medium
344 Reverse String Easy
345 Reverse Vowels of a String Easy
346 πŸ”’ Moving Average from Data Stream Easy
347 Top K Frequent Elements Medium
348 πŸ”’ Design Tic-Tac-Toe Medium
349 Intersection of Two Arrays Easy
350 Intersection of Two Arrays II Easy
351 πŸ”’ Android Unlock Patterns Medium
352 Data Stream as Disjoint Intervals Hard
353 πŸ”’ Design Snake Game Medium
354 Russian Doll Envelopes Hard
355 Design Twitter Medium
356 πŸ”’ Line Reflection Medium
357 Count Numbers with Unique Digits Medium
358 πŸ”’ Rearrange String k Distance Apart Hard
359 πŸ”’ Logger Rate Limiter Easy
360 πŸ”’ Sort Transformed Array Medium
361 πŸ”’ Bomb Enemy Medium
362 πŸ”’ Design Hit Counter Medium
363 Max Sum of Rectangle No Larger Than K Hard
364 πŸ”’ Nested List Weight Sum II Medium
365 Water and Jug Problem Medium
366 πŸ”’ Find Leaves of Binary Tree Medium
367 Valid Perfect Square Medium
368 Largest Divisible Subset Medium
369 πŸ”’ Plus One Linked List Medium
370 πŸ”’ Range Addition Medium
371 Sum of Two Integers Easy
372 Super Pow Medium
373 Find K Pairs with Smallest Sums Medium
374 Guess Number Higher or Lower Easy
375 Guess Number Higher or Lower II Medium
376 Wiggle Subsequence Medium
377 Combination Sum IV Medium
378 Kth Smallest Element in a Sorted Matrix Medium
379 πŸ”’ Design Phone Directory Medium
380 Insert Delete GetRandom O(1) Medium
381 Insert Delete GetRandom O(1) - Duplicates allowed Hard
382 Linked List Random Node Medium
383 Ransom Note Easy
384 Shuffle an Array Medium
385 Mini Parser Medium
386 Lexicographical Numbers Medium
387 First Unique Character in a String Easy
388 Longest Absolute File Path Medium
389 Find the Difference C++, Java Easy
391 Perfect Rectangle Hard
392 Is Subsequence    Medium
393 UTF-8 Validation    Medium
394 Decode String    Medium
395 Longest Substring with At Least K Repeating Characters    Medium
396 Rotate Function    Medium
397 Integer Replacement    Medium
398 Random Pick Index    Medium
399 Evaluate Division    Medium
400 Nth Digit    Easy
401 Binary Watch    Easy
402 Remove K Digits    Medium
403 Frog Jump    Hard
404 Sum of Left Leaves    Easy
405 Convert a Number to Hexadecimal    Easy
406 Queue Reconstruction by Height    Medium
407 Trapping Rain Water II    Hard
408 Valid Word Abbreviation    Easy
409 Longest Palindrome    Easy
410 Split Array Largest Sum    Hard
411 Minimum Unique Word Abbreviation    Hard
412 Fizz Buzz    Easy
413 Arithmetic Slices    Medium
414 Third Maximum Number    Easy
415 Add Strings    Easy
416 Partition Equal Subset Sum    Medium
417 Pacific Atlantic Water Flow    Medium
418 Sentence Screen Fitting    Medium
419 Battleships in a Board    Medium
420 Strong Password Checker    Hard
421 Maximum XOR of Two Numbers in an Array    Medium
422 Valid Word Square    Easy
423 Reconstruct Original Digits from English    Medium
424 Longest Repeating Character Replacement    Medium
425 Word Squares    Hard
432 All O`one Data Structure    Hard
434 Number of Segments in a String    Easy
435 Non-overlapping Intervals    Medium
436 Find Right Interval    Medium
437 Path Sum III    Easy
438 Find All Anagrams in a String    Easy
439 Ternary Expression Parser    Medium
440 K-th Smallest in Lexicographical Order    Hard
441 Arranging Coins    Easy
442 Find All Duplicates in an Array    Medium
444 Sequence Reconstruction    Medium
445 Add Two Numbers II    Medium
446 Arithmetic Slices II - Subsequence    Hard
447 Number of Boomerangs    Easy
448 Find All Numbers Disappeared in an Array    Easy
449 Serialize and Deserialize BST    Medium
450 Delete Node in a BST    Medium
451 Sort Characters By Frequency    Medium
452 Minimum Number of Arrows to Burst Balloons    Medium
453 Minimum Moves to Equal Array Elements    Easy
454 4Sum II    C++ Medium
455 Assign Cookies    Easy
456 132 Pattern    Medium
459 Repeated Substring Pattern    Easy
460 LFU Cache    Hard
461 Hamming Distance    Easy
462 Minimum Moves to Equal Array Elements II    Medium
463 Island Perimeter    Easy
464 Can I Win    Medium
465 Optimal Account Balancing    Hard
466 Count The Repetitions    Hard
467 Unique Substrings in Wraparound String    Medium
468 Validate IP Address    Medium
469 Convex Polygon    Medium
471 Encode String with Shortest Length    Hard
472 Concatenated Words    Hard
473 Matchsticks to Square    Medium
474 Ones and Zeroes    Medium
475 Heaters    Easy
476 Number Complement    Easy
477 Total Hamming Distance    Medium
480 Sliding Window Median    Hard
481 Magical String    Medium
482 License Key Formatting    Medium
483 Smallest Good Base    Hard
484 Find Permutation    Medium
485 Max Consecutive Ones    Easy
486 Predict the Winner    Medium
487 Max Consecutive Ones II    Medium
488 Zuma Game    Hard
490 The Maze    Medium
491 Increasing Subsequences    Medium
492 Construct the Rectangle    Easy
493 Reverse Pairs    Hard
494 Target Sum    Medium
495 Teemo Attacking    Medium
496 Next Greater Element I    Easy
498 Diagonal Traverse    Medium
499 The Maze III    Hard
500 Keyboard Row    Easy
501 Find Mode in Binary Search Tree    Easy
502 IPO    Hard
503 Next Greater Element II    Medium
504 Base 7    Easy
505 The Maze II    Medium
506 Relative Ranks    Easy
507 Perfect Number    Easy
508 Most Frequent Subtree Sum    Medium
513 Find Bottom Left Tree Value    Medium
514 Freedom Trail    Hard
515 Find Largest Value in Each Tree Row    Medium
516 Longest Palindromic Subsequence    Medium
517 Super Washing Machines    Hard
520 Detect Capital    Easy
521 Longest Uncommon Subsequence I    Easy
522 Longest Uncommon Subsequence II    Medium
523 Continuous Subarray Sum    Medium
524 Longest Word in Dictionary through Deleting    Medium
525 Contiguous Array    Medium
526 Beautiful Arrangement    Medium
527 Word Abbreviation    Hard
529 Minesweeper    Medium
530 Minimum Absolute Difference in BST    Easy
531 Lonely Pixel I    Medium
532 K-diff Pairs in an Array    Easy
533 Lonely Pixel II    Medium
535 Encode and Decode TinyURL    C++ Medium
536 Construct Binary Tree from String    Medium
537 Complex Number Multiplication    Medium
538 Convert BST to Greater Tree    Medium
539 Minimum Time Difference    Medium
541 Reverse String II    Easy
542 01 Matrix    Medium
543 Diameter of Binary Tree    Easy
544 Output Contest Matches    Medium
545 Boundary of Binary Tree    Medium
546 Remove Boxes    Hard
547 Friend Circles    Medium
548 Split Array with Equal Sum    Medium
549 Binary Tree Longest Consecutive Sequence II C++ Medium
551 Student Attendance Record I C++ Easy
552 Student Attendance Record II Hard
553 Optimal Division C++ Medium
554 Brick Wall C++ Medium
555 Split Assembled Strings C++ Hard
556 Next Greater Element III C++ Medium
557 Reverse Words in a String III C++ Easy
560 Subarray Sum Equals K   New Medium
561 Array Partition I    Easy
562 Longest Line of Consecutive One in Matrix    Medium
563 Binary Tree Tilt    Easy
564 Find the Closest Palindrome    Hard
566 Reshape the Matrix C++ Easy
567 Permutation in String C++ Medium
568 Maximum Vacation Days   New Hard
652 Find Duplicate Subtrees C++ Medium

Concurrency category

# Title Solutions Difficulty
1114 Print in Order C++ Easy
1115 Print FooBar Alternately C++ Medium
1116 Print Zero Even Odd C++ Medium
1117 Building H2O C++ Medium

copyright xu(xusiwei1236@163.com), all right reserved.

About

solutions of problems on LeetCode


Languages

Language:C++ 91.3%Language:C 4.4%Language:Python 1.9%Language:Java 1.2%Language:Go 1.0%Language:Shell 0.1%Language:Makefile 0.1%