- Math (Count = 16)
- Arrays, General (Count = 65)
- Partition, 2 Pointers (Count = 06)
- Sort (Count = 10)
- LinkedList (Count = 27)
- Trees (Count = 49)
- Search, Binary Search (Count = 16)
- Queue, Priority Queue (Count = 09)
- DFS, Recursion (Count = 27)
- Strings (Count = 32)
- Dynamic Programming (Count = 23)
- Greedy (Count = 04)
- Stack (Count = 10)
- BFS, Graph, Union Find (Count = 08)
- Miscellaneous (Count = 04)
- SQL (Count = 11)
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 7 | Reverse Integer | C++ Java | π₯ π₯ π₯ | good | 16 July 2017 |
| 02 | 12 | Integer to Roman | C++ Java | βββββ | 16 July 2017 | |
| 03 | 13 | Roman to Integer | C++ Java | βββββ | 16 July 2017 | |
| 04 | 190 | Reverse Bits | C++ Java | βββββ | 27 July 2017 | |
| 05 | 9 | Palindrome Number | C++ Java | π₯π₯π₯ | good; case negative numbers | 24 August 2017 |
| 06 | 29 | Divide Two Integers | C++ Java | π₯π₯π₯π₯π₯ | tricky, see 371 | 27 September 2017 |
| 07 | 43 | Multiply Strings | C++ Java | π₯π₯π₯π₯π₯ | tricky | 27 September 2017 |
| 08 | 66 | Plus One | C++ Java | βββββ | tricky | 27 September 2017 |
| 09 | 191 | Number of 1 Bits | C++ Java | βββββ | 27 September 2017 | |
| 10 | 461 | Hamming Distance | C++ Java | βββββ | 28 September 2017 | |
| 11 | 477 | Total Hamming Distance | C++ Java | π₯π₯π₯ | nice approach | 28 September 2017 |
| 12 | 633 | Sum of Square Numbers | C++ Java | βββββ | cases less 0/equal 0/1/2 | 28 September 2017 |
| 13 | 371 | Sum of Two Integers | C++ Java | π₯π₯π₯ | [https://discuss.leetcode.com/topic/50315/a-summary-how-to-use-bit-manipulation-to-solve-problems-easily-and-efficiently], see 29 | 30 September 2017 |
| 14 | 260 | Single Number III | C++ Java | π₯π₯π₯ | 30 September 2017 | |
| 15 | 204 | Count Primes | C++ Java | βββββ | 29 October 2017 | |
| 16 | 476 | Number Complement | C++ Java | π₯π₯π₯ | tricky | 29 October 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 268 | Missing Number | C++ Java C# | βββββ | 7 June 2017 | |
| 02 | 287 | Find The Duplicate Number | C++ Java C# | π₯π₯π₯ | 7 June 2017 | |
| 03 | 136 | Single Number | C++ Java C# | βββ | 30 September 2017 | |
| 04 | 389 | Find the Difference | C++ Java C# | βββββ | 27 September 2017 | |
| 05 | 41 | First Missing Positive | C++ Java C# | π₯π₯π₯ | tricky,hard | 7 June 2017 |
| 06 | 442 | Find All Duplicates In An Array | C++ Java C# | π₯π₯π₯ | tricky,hard | 7 June 2017 |
| 07 | 448 | Find All Numbers Disappeared In An Array | C++ Java C# | π₯π₯π₯ | similar to 442 | 7 June 2017 |
| 08 | 217 | Contains Duplicate | C++ Java | βββββ | 8 June 2017 | |
| 09 | 219 | Contains Duplicate II | C++ Java | π₯π₯π₯ | 8 June 2017 | |
| 10 | 220 | Contains Duplicate III | C++ Java | π₯π₯π₯π₯π₯ | 8 June 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 11 | 169 | Majority Element | C++ Java | π₯π₯π₯ | tricky | 8 June 2017 |
| 12 | 229 | Majority Element II | C++ Java | π₯π₯π₯π₯π₯ | tricky, generalise it | 8 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 13 | 168 | Excel Sheet Column Title | C++ Java | π₯π₯π₯ | num to excel col; math; note string concat operation | 8 June 2017 |
| 14 | 171 | Excel Sheet Column Number | C++ Java | π₯π₯π₯ | excel col to num; math | 8 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 15 | 189 | Rotate Array | C++ Java | 6 May 2017 | ||
| 16 | 61 | Rotate List | C++ Java | 6 May 2017 | ||
| -- | -- | -- | -- | -- | -- | -- |
| 17 | 48 | Rotate Image | C++ Java | βββββ | extra: 90 anticlockwise and 180 rotation | 18 June 2017 |
| 18 | 54 | Spiral Matrix | C++ Java | π₯π₯π₯ | see direction approach,[https://codereview.stackexchange.com/questions/38104/clockwise-and-counterclockwise-spiral-matrix-traversal], [https://stackoverflow.com/questions/21108695/how-do-i-change-the-directions-and-starting-points-of-this-matrix-spiral-travers], [https://gist.github.com/DaemonTails/8470408], [https://stackoverflow.com/questions/726756/print-two-dimensional-array-in-spiral-order/19625520#19625520] | 18 June 2017 |
| 19 | 59 | Spiral Matrix II | C++ Java | βββββ | 18 June 2017 | |
| 20 | 73 | Set Matrix Zeroes | C++ Java | π₯π₯π₯ | 18 June 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 21 | 1 | Two Sum | C++ Java Python | βββ | map, sort, brute force | 18 June 2017 |
| 22 | 15 | 3 Sum | C++ Java | βββββ | NOTE: no duplicates | 18 June 2017 |
| 23 | 18 | 4 Sum | C++ Java | βββββ | see multimap solution | 18 June 2017 |
| 24 | 16 | 3 Sum Closest | C++ Java | βββββ | 18 June 2017 | |
| 25 | 259 | 3 Sum Smaller | C++ | π₯π₯π₯ | paid | 18 June 2017 |
| 26 | 454 | 4 Sum II | C++ Java | π₯π₯π₯ | 18 June 2017 | |
| 27 | 167 | Two Sum II - Input array is sorted | C++ Java | βββ | 27 September 2017 | |
| 28 | 170 | Two Sum III - Data structure design | C++ | π₯π₯π₯ | paid | 27 September 2017 |
| 29 | 653 | Two Sum IV - Input is a BST | C++ Java | π₯π₯π₯π₯π₯ | 27 September 2017 | |
| 30 | 1099 | Two Sum Less Than K | C++ | π₯π₯π₯ | 13 July 2019 | |
| -- | -- | -- | -- | -- | -- | -- |
| 31 | 532 | K Diff Pairs In An Array | C++ Java | π₯π₯π₯π₯π₯ | 22 August 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 32 | 674 | Longest Continuous Increasing Subsequence | C++ Java | π₯π₯π₯ | 16 September 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 33 | 121 | Best Time to Buy and Sell Stock | C++ Java | π₯π₯π₯ | only 1 transaction, if delta prices given then equals max contiguous subarray | 16 September 2017 |
| 34 | 122 | Best Time to Buy and Sell Stock II | C++ Java | π₯π₯π₯ | any no.of txns, we want all positive deltas | 16 September 2017 |
| 35 | 188 | Best Time to Buy and Sell Stock IV | C++ Java | π₯π₯π₯π₯π₯ | atmost k txns | 16 September 2017 |
| 36 | 123 | Best Time to Buy and Sell Stock III | C++ Java | π₯π₯π₯π₯π₯ | same as 188, k = 2 and atmost k txns | 16 September 2017 |
| 37 | 309 | Best Time to Buy and Sell Stock with Cooldown | C++ Java | π₯π₯π₯π₯π₯ | with cooldown | 16 September 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 38 | 384 | Shuffle an Array | C++ Java | π₯π₯π₯π₯π₯ | Concept | 21 September 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 39 | 349 | Intersection of Two Arrays | C++ Java | βββ | return common elements, hash(remove element afterwards), 2 pointers and sort approach | 30 September 2017 |
| 40 | 350 | Intersection of Two Arrays II | C++ Java | βββ | 30 September 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 41 | 293 | Flip Game | C++ | π₯π₯π₯ | paid | 28 September 2017 |
| 42 | 294 | Flip Game II | C++ | π₯π₯π₯ | paid | 29 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 43 | 724 | Find Pivot Index | C++ Java | βββββ | 26 November 2017 | |
| 44 | 560 | Subarray Sum Equals K | C++ Java | π₯π₯π₯ | 6 October 2017 | |
| 45 | 523 | Continuous Subarray Sum | C++ Java | π₯π₯π₯ | see 416 | 6 October 2017 |
| 46 | 525 | Contiguous Array | C++ Java | π₯π₯π₯ | 26 October 2017 | |
| 47 | 325 | Maximum Size Subarray Sum Equals k | C++ | π₯π₯π₯π₯π₯ | paid | 6 October 2017 |
| 48 | 209 | Minimum Size Subarray Sum | C++ Java | π₯π₯π₯ | sliding window, tricky, NOTE:difference between this and 325 | 23 August 2017 |
| 49 | 581 | Shortest Unsorted Continuous Subarray | C++ Java | π₯π₯π₯π₯π₯ | tricky with O(1) space | 27 October 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 50 | 463 | Island Perimeter | C++ Java | π₯π₯π₯ | 29 October 2017 | |
| 51 | 277 | Find the Celebrity | C++ | π₯π₯π₯ | paid | 2 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 52 | 495 | Teemo Attacking | C++ Java | π₯π₯π₯ | tricky, similar to interval problems 56, 57 etc. | 9 November 2017 |
| 53 | 228 | Summary Ranges | C++ Java | π₯π₯π₯ | tricky,similar to 495 | 9 November 2017 |
| 54 | 163 | Missing Ranges | C++ | π₯π₯π₯ | tricky,similar to 495, paid | 9 November 2017 |
| 55 | 436 | Find Right Interval | C++ Java | π₯π₯π₯ | tricky,see 56, 57 etc | 12 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 56 | 303 | Range Sum Query - Immutable | C++ Java | βββββ | 21 November 2017 | |
| 57 | 304 | Range Sum Query 2D - Immutable | C++ Java | π₯π₯π₯ | 21 November 2017 | |
| 58 | 307 | Range Sum Query - Mutable | C++ | π₯π₯π₯ | Binary Indexed Tree, Segment tree | 21 November 2017 |
| 59 | 308 | Range Sum Query 2D - Mutable | C++ | π₯π₯π₯ | Binary Indexed Tree, Segment tree, paid | 21 November 2017 |
| 60 | 370 | Range Addition | C++ | π₯π₯π₯ | paid | 21 November 2017 |
| 61 | 598 | Range Addition II | C++ Java | π₯π₯π₯ | 21 November 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 62 | 128 | Longest Consecutive Sequence | C++ Java | π₯π₯π₯π₯π₯ | also see 300-LongestIncreasingSubsequence | 23 November 2017 |
| 63 | 289 | Game of Life | C++ Java | π₯π₯π₯π₯π₯ | 23 November 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 64 | 414 | Third Maximum Number | C++ Java | π₯π₯π₯π₯π₯ | tricky when number equal to INT-MIN, see 215 | 26 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 65 | 36 | Valid Sudoku | C++ Java | π₯π₯π₯ | tricky, when using 3 types of flags | 29 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 75 | Sort Colors | C++ Java | βββββ | 6 May 2017 | |
| 02 | 283 | Move Zeroes | C++ Java | βββββ | 6 May 2017 | |
| 03 | 27 | Remove Element | C++ Java | βββββ | 6 May 2017 | |
| 04 | 88 | Merge Sorted Array | C++ Java | βββββ | 6 May 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 05 | 26 | Remove Duplicates from Sorted Array | C++ Java | π₯π₯π₯ | 23 June 2017 | |
| 06 | 80 | Remove Duplicates from Sorted Array II | C++ Java | π₯π₯π₯π₯π₯ | 23 June 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 56 | Merge Intervals | C++ Java | βββββ | used lambda fn; tricky, see 495 | 30 March 2017 |
| 02 | 57 | Insert Intervals | C++ Java | π₯π₯π₯ | tricky | 30 March 2017 |
| 03 | 179 | Largest Number | C++ Java | π₯π₯π₯ | tricky | 16 July 2017 |
| 04 | 252 | Meeting Rooms | C++ | βββββ | find presence of overlapping interval, paid | 16 July 2017 |
| 05 | 253 | Meeting Rooms II | C++ | π₯π₯π₯π₯π₯ | custom sorting, paid | 16 July 2017 |
| 06 | 165 | Compare Version Numbers | C++ Java | π₯π₯π₯ | 1 August 2017 | |
| 07 | 406 | Queue Reconstruction by Height | C++ Java | π₯π₯π₯π₯π₯ | very tricky; see effecient algo | 30 September 2017 |
| 08 | 280 | Wiggle Sort | C++ | π₯π₯π₯ | paid | 26 October 2017 |
| 09 | 324 | Wiggle Sort II | C++ Java | π₯π₯π₯π₯π₯ | see median and tri partition approach | 26 October 2017 |
| 10 | 451 | Sort Characters By Frequency | C++ Java | π₯π₯π₯ | see both, java and c++ | 28 December 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 21 | Merge Two Sorted Lists | C++ Java | βββββ | iterative and recursive solutions | 6 May 2017 |
| 02 | 23 | Merge K Sorted Lists | C++ Java | π₯π₯π₯ | 6 May 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 03 | 141 | Linked List Cycle | C++ Java | βββ | 1 July 2017 | |
| 04 | 142 | Linked List Cycle II | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 05 | 206 | Reverse Linked List | C++ Java Python | βββββ | recursive and iterative | 1 July 2017 |
| 06 | 92 | Reverse Linked List II | C++ Java | π₯π₯π₯ | tricky, reverse b/w m and n, case m ==1, see Java solution | 1 July 2017 |
| 06 | 61 | Rotate List | C++ Java | π₯π₯π₯ | LinkedList, in Group1 | 6 May 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 07 | 148 | Sort List | C++ Java | π₯π₯π₯ | handle odd/even length case | 1 July 2017 |
| 08 | 147 | Insertion Sort List | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| 09 | 160 | Intersection of Two Linked Lists | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| 10 | 109 | Convert Sorted List to Binary Search Tree | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 11 | 237 | Delete Node in a Linked List | C++ Java | βββ | 1 July 2017 | |
| 12 | 203 | Remove Linked List Elements | C++ Java | βββββ | 1 July 2017 | |
| 13 | 83 | Remove Duplicates from Sorted List | C++ Java | βββββ | 1 July 2017 | |
| 14 | 82 | Remove Duplicates from Sorted List II | C++ Java | π₯π₯π₯ | tricky | 1 July 2017 |
| 15 | 19 | Remove Nth Node From End of List | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 16 | 234 | Palindrome Linked List | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| 17 | 2 | Add Two Numbers | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| 18 | 445 | Add Two Numbers II | C++ Java | π₯π₯π₯ | 9 November 2017 | |
| 19 | 369 | Plus One Linked List | C++ | π₯π₯π₯ | paid | 9 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 20 | 143 | Reorder List | C++ Java | π₯π₯π₯ | handle even/odd length case | 1 July 2017 |
| 21 | 86 | Partition List | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| 22 | 328 | Odd Even Linked List | C++ Java | π₯π₯π₯ | 1 July 2017 | |
| 23 | 725 | Split Linked List in Parts | C++ Java | π₯π₯π₯π₯π₯ | tricky | 20 November 2017 |
| 24 | 24 | Swap Nodes In Pairs | C++ Java | π₯π₯π₯ | tricky | 1 July 2017 |
| 25 | 25 | Reverse Nodes in k-Group | C++ Java | π₯π₯π₯π₯π₯ | tricky | 1 July 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 26 | 138 | Copy List With Random Pointer | C++ Java | π₯π₯π₯π₯π₯ | tricky | 15 September 2017 |
| 27 | 379 | Design Phone Directory | C++ Java | π₯π₯π₯π₯π₯ | tricky, harsh time constraints, paid, see both | 10 November 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 235 | Lowest Common Ancestor of a Binary Search Tree | C++ Java | βββ | Trees, Recursion | 4 April 2017 |
| 02 | 236 | Lowest Common Ancestor of a Binary Tree | C++ Java | βββββ | Trees, Recursion | 4 April 2017 |
| 02 | 0 | Lowest Common Ancestor of a Binary Tree Using Parent Pointer | C++ | βββββ | Trees, Recursion | 4 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 03 | 100 | Same Tree | C++ Java Python | βββ | Trees, Recursion | 4 April 2017 |
| 04 | 226 | Invert Binary Tree | C++ Java | βββ | Trees, Recursion | 10 September 2017 |
| 05 | 101 | Symmetric Tree | C++ Java | βββββ | Trees, Recursion | 4 April 2017 |
| 06 | 98 | Validate Binary Search Tree | C++ Java | βββββ | Trees, Recursion | 2 July 2017 |
| 07 | 255 | Verify Preorder Sequence in Binary Search Tree | C++ Java | π₯π₯π₯π₯π₯ | Trees, Recursion, paid | 26 November 2017 |
| 08 | 331 | Verify Preorder Serialization of a Binary Tree | C++ Java | π₯π₯π₯π₯π₯ | Trees, Recursion | 26 November 2017 |
| 09 | 110 | Balanced Binary Tree | C++ Java | βββββ | Trees, Recursion | 2 July 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 10 | 450 | Delete Node in a BST | C++ Java | π₯π₯π₯ | 4 April 2017 | |
| 11 | 173 | Binary Search Tree Iterator | C++ Java | π₯π₯π₯π₯π₯ | 12 April 2017 | |
| 12 | 94 | Binary Tree Inorder Traversal | C++ Java | π₯π₯π₯ | see morris traversal, stack solutions | 12 April 2017 |
| 13 | 144 | Binary Tree Preorder Traversal | C++ Java | π₯π₯π₯ | see morris traversal, stack solutions | 12 April 2017 |
| 14 | 145 | Binary Tree Postorder Traversal | C++ Java | π₯π₯π₯ | see morris traversal, stack solutions | 12 April 2017 |
| 15 | 285 | Inorder Successor in BST | C++ | βββββ | paid | 12 April 2017 |
| 16 | 102 | Binary Tree Level Order Traversal | C++ Java | βββββ | 3 July 2017 | |
| 17 | 103 | Binary Tree ZigZag Level Order Traversal | C++ Java | βββββ | 3 July 2017 | |
| 18 | 107 | Binary Tree Level Order Traversal II | C++ Java | βββββ | 3 July 2017 | |
| 19 | 314 | Binary Tree Vertical Order Traversal | C++ | π₯π₯π₯π₯π₯ | paid, good; uses level order traversal | 3 July 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 20 | 104 | Maximum Depth of Binary Tree | C++ Java | βββ | 3 July 2017 | |
| 21 | 111 | Minimum Depth of Binary Tree | C++ Java | βββββ | 3 July 2017 | |
| 22 | 230 | Kth Smallest Element in a BST | C++ Java | βββββ | 3 July 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 23 | 108 | Convert Sorted Array to Binary Search Tree | C++ Java | βββββ | 3 July 2017 | |
| 24 | 116 | Populating Next Right Pointers in Each Node | C++ Java | π₯π₯π₯π₯π₯ | O(1) space very tricky | 4 July 2017 |
| 25 | 117 | Populating Next Right Pointers in Each Node II | C++ Java | π₯π₯π₯π₯π₯ | O(1) space very tricky | 4 July 2017 |
| 26 | 105 | Construct Binary Tree from Preorder and Inorder Traversal | C++ Java | π₯π₯π₯ | NOTE: Binary tree, not BST | 25 July 2017 |
| 27 | 106 | Construct Binary Tree from Inorder and Postorder Traversal | C++ Java | π₯π₯π₯ | NOTE: Binary tree, not BST | 25 July 2017 |
| 28 | 297 | Serialize and Deserialize Binary Tree | C++ Java | π₯π₯π₯π₯π₯ | generalize for n-ary tree | 30 August 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 29 | 114 | Flatten Binary Tree To Linked List | C++ Java | π₯π₯π₯π₯π₯ | 29 July 2017 | |
| 29 | 0 | Binary Tree to Doubly Linked List | C++ | π₯π₯π₯π₯π₯ | Link 2 Link 3 Link 4 | 4 November 2017 |
| 29 | 0 | Binary Tree to Circular Doubly Linked List | C++ C | π₯π₯π₯π₯π₯ | Link 2 Link 3 | 4 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 30 | 530 | Minimum Absolute Difference in BST | C++ Java | βββββ | good, inorder traversal | 22 August 2017 |
| 31 | 654 | Maximum Binary Tree | C++ Java | βββββ | like 108 | 16 September 2017 |
| 32 | 563 | Binary Tree Tilt | C++ Java | βββββ | 16 September 2017 | |
| 33 | 671 | Second Minimum Node In a Binary Tree | C++ Java | π₯π₯π₯π₯π₯ | 16 September 2017 | |
| 34 | 652 | Find Duplicate Subtrees | C++ Java | π₯π₯π₯π₯π₯ | 21 September 2017 | |
| 35 | 669 | Trim A Binary Search Tree | C++ Java | π₯π₯π₯π₯π₯ | deleting node in c++ makes it tricky | 21 September 2017 |
| 36 | 270 | Closest Binary Search Tree Value | C++ | π₯π₯π₯ | paid | 22 September 2017 |
| 37 | 272 | Closest Binary Search Tree Value II | C++ | π₯π₯π₯π₯π₯ | paid | 25 September 2017 |
| 38 | 617 | Merge Two Binary Trees | C++ Java | βββββ | 27 September 2017 | |
| 39 | 199 | Binary Tree Right Side View | C++ Java | π₯π₯π₯ | see dfs approach | 29 September 2017 |
| 40 | 366 | Find Leaves of Binary Tree | C++ | π₯π₯π₯π₯π₯ | paid | 29 September 2017 |
| 41 | 543 | Diameter of Binary Tree | C++ Java | π₯π₯π₯ | see path sum problems | 29 September 2017 |
| 42 | 501 | Find Mode in Binary Search Tree | C++ Java | π₯π₯π₯ | 29 September 2017 | |
| 43 | 538 | Convert BST to Greater Tree | C++ Java | βββββ | 29 September 2017 | |
| 44 | 404 | Sum of Left Leaves | C++ Java | βββββ | 29 September 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 45 | 572 | Subtree of Another Tree | C++ Java | βββββ | 01 November 2017 | |
| 46 | 508 | Most Frequent Subtree Sum | C++ Java | βββββ | 01 November 2017 | |
| 47 | 250 | Count Univalue Subtrees | C++ | βββββ | paid | 01 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 48 | 298 | Binary Tree Longest Consecutive Sequence | C++ | π₯π₯π₯ | paid, see path sum and diameter problems | 24 November 2017 |
| 49 | 549 | Binary Tree Longest Consecutive Sequence II | C++ | π₯π₯π₯ | paid | 24 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 35 | Search Insert Position | C++ Java | βββ | Binary Search | 19 July 2017 |
| 02 | 162 | Find Peak Element | C++ Java | π₯π₯π₯π₯π₯ | Binary Search | 19 July 2017 |
| 03 | 278 | First Bad Version | C++ Java | π₯π₯π₯ | Binary Search | 19 July 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 04 | 33 | Search In Rotated Sorted Array | C++ Java | π₯π₯π₯π₯π₯ | Binary Search | 6 May 2017 |
| 05 | 81 | Search In Rotated Sorted Array II | C++ Java | π₯π₯π₯π₯π₯ | Binary Search | 6 May 2017 |
| 06 | 153 | Find Minimum in Rotated Sorted Array | C++ Java | π₯π₯π₯π₯π₯ | Binary Search | 22 September 2017 |
| 07 | 154 | Find Minimum in Rotated Sorted Array II | C++ Java | π₯π₯π₯π₯π₯ | Binary Search | 22 September 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 08 | 74 | Search A 2D Matrix | C++ Java | π₯π₯π₯π₯π₯ | Special Search | 23 June 2017 |
| 09 | 240 | Search A 2D Matrix II | C++ Java | π₯π₯π₯π₯π₯ | Special Search | 23 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 10 | 04 | Median of Two Sorted Arrays | C++ | π₯π₯π₯π₯π₯ | Binary Search | 9 July 2017 |
| 11 | 34 | Search for a Range | C++ Java | π₯π₯π₯π₯π₯ | Binary Search, own lower bound and upper bound implementation | 11 September 2017 |
| 12 | 658 | Find K Closest Points | C++ Java | π₯π₯π₯π₯π₯ | Binary Search | 17 September 2017 |
| 13 | 69 | Sqrt(x) | C++ Java | π₯π₯π₯π₯π₯ | Binary Search, last of N approach | 27 September 2017 |
| 14 | 374 | Guess Number Higher or Lower | C++ Java | βββββ | Binary Search, see 375 | 28 September 2017 |
| 15 | 367 | Valid Perfect Square | C++ Java | βββββ | Binary Search, see cases n is 0 and is 0 and is 1 | 28 September 2017 |
| 16 | 540 | Single Element in a Sorted Array | C++ Java | π₯π₯π₯ | Binary Search, tricky, see single number problems | 30 September 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 215 | Kth Largest Element in an Array | C++ Java | π₯π₯π₯ | Quick Select, Priority Q | 24 June 2017 |
| 02 | 378 | Kth Smallest Element in a Sorted Matrix | C++ Java | π₯π₯π₯ | Priority Q, see binary search approach | 24 June 2017 |
| 03 | 347 | Top K Frequent Elements | C++ Java | π₯π₯π₯ | Note: both can be used, min and max pq | 24 June 2017 |
| 04 | 295 | Find Median From Data Stream | C++ Java | π₯π₯π₯π₯π₯ | Priority Q, Multiset | 25 June 2017 |
| 05 | 480 | Sliding Window Median | C++ Java | π₯π₯π₯π₯π₯ | Priority Q, Multiset; Java better as PQ has remove | 25 June 2017 |
| 06 | 373 | Find K Pairs with Smallest Sums | C++ Java | π₯π₯π₯π₯π₯ | Priority Q, very tricky, java better | 29 September 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 07 | 346 | Moving Average from Data Stream | C++ | π₯π₯π₯ | Queue, paid | 25 June 2017 |
| 08 | 239 | Sliding Window Maximum | C++ | π₯π₯π₯π₯π₯ | Deque, Multiset | 25 June 2017 |
| 09 | 225 | Implement Stack using Queues | C++ | π₯π₯π₯π₯π₯ | Queue | 6 October 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 112 | Path Sum | C++ Java | βββββ | Trees DFS, Recursion | 31 March 2017 |
| 02 | 113 | Path Sum II | C++ Java | π₯π₯π₯ | Trees DFS, Recursion | 31 March 2017 |
| 03 | 437 | Path Sum III | C++ Java | π₯π₯π₯π₯π₯ | Trees DFS, Recursion | 8 June 2017 |
| 04 | 124 | Binary Tree Maximum Path Sum | C++ Java | π₯π₯π₯π₯π₯ | see: [http://www.geeksforgeeks.org/find-maximum-path-sum-two-leaves-binary-tree/] and [http://www.geeksforgeeks.org/find-the-maximum-sum-path-in-a-binary-tree/] Trees DFS, Recursion | 30 July 2017 |
| 05 | 129 | Sum Root to Leaf Numbers | C++ Java | π₯π₯π₯π₯π₯ | Trees DFS, Recursion | 30 July 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 06 | 46 | Permutations | C++ Java | βββ | DFS, Recursion | 10 June 2017 |
| 07 | 47 | Permutations II | C++ Java | βββββ | DFS, Recursion | 10 June 2017 |
| 08 | 31 | Next Permutation | C++ Java | βββββ | DFS, Recursion | 10 June 2017 |
| 09 | 60 | Permutation Sequence | C++ | π₯π₯π₯π₯π₯ | Tricky | 10 June 2017 |
| 10 | 266 | Palindrome Permutation | C++ | π₯π₯π₯ | PAID | 10 June 2017 |
| 11 | 267 | Palindrome Permutation II | C++ | π₯π₯π₯π₯π₯ | PAID | 10 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 12 | 78 | Subsets | C++ Java | βββ | dfs,recursion | 10 June 2017 |
| 13 | 90 | Subsets II | C++ Java | βββββ | dfs,recursion,tricky | 10 June 2017 |
| 14 | 39 | Combination Sum | C++ Java | βββββ | dfs,recursion,tricky | 10 June 2017 |
| 15 | 40 | Combination Sum II | C++ Java | βββββ | dfs,recursion,tricky | 10 June 2017 |
| 16 | 216 | Combination Sum III | C++ Java | βββββ | dfs,recursion,tricky | 10 June 2017 |
| 17 | 377 | Combination Sum IV | C++ Java | π₯π₯π₯π₯π₯ | DP, dfs,recursion,follow up tricky | 10 June 2017 |
| 18 | 77 | Combinations | C++ | π₯π₯π₯π₯π₯ | see bit approach: next number with k set bits; dfs,recursion,tricky | 10 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 19 | 22 | Generate Parentheses | C++ | π₯π₯π₯ | dfs,recursion,tricky | 27 September 2017 |
| 20 | 17 | Letter Combinations of a Phone Number | C++ | π₯π₯π₯ | dfs,recursion,tricky | 27 September 2017 |
| 21 | 494 | Target Sum | C++ | π₯π₯π₯ | dfs,recursion, DP approach -subset sum also | 11 October 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 22 | 200 | Number of Islands | C++ | π₯π₯π₯π₯π₯ | 6 October 2017 | |
| 23 | 695 | Max Area of Island | C++ Java | βββββ | 29 October 2017 | |
| 24 | 130 | Surrounded Regions | C++ Java | βββββ | 26 November 2017 | |
| 25 | 286 | Walls and Gates | C++ | π₯π₯π₯ | paid | 26 November 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 26 | 131 | Palindrome Partitioning | C++ Java | π₯π₯π₯ | 25 November 2017 | |
| 27 | 132 | Palindrome Partitioning II | C++ Java | π₯π₯π₯ | 25 November 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 14 | Longest Common Prefix | C++ Java | βββββ | 19 July 2017 | |
| 02 | 38 | Count and Say | C++ Java | 19 July 2017 | ||
| -- | -- | -- | -- | -- | -- | -- |
| 03 | 151 | Reverse Words In a String | C++ Java | π₯π₯π₯π₯π₯ | 12 June 2017 | |
| 04 | 557 | Reverse Words In a String III | C++ Java | π₯π₯π₯ | tricky | 12 June 2017 |
| 05 | 161 | One Edit Distance | C++ | π₯π₯π₯ | tricky, paid | 12 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 06 | 409 | Longest Palindrome | C++ Java | 11 August 2017 | ||
| 07 | 5 | Longest Palindromic Substring | C++ Java | βββββ | same as 647 | 24 August 2017 |
| 08 | 647 | Palindromic Substrings | C++ Java | βββββ | same as 5 | 24 August 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 09 | 3 | Longest Substring Without Repeating Characters | C++ Java | π₯π₯π₯π₯π₯ | sliding window, same for arrays | 30 July 2017 |
| 10 | 340 | Longest Substring with At Most K Distinct Characters | C++ Java | π₯π₯π₯π₯π₯ | sliding window, paid | 23 August 2017 |
| 11 | 395 | Longest Substring with At Least K Repeating Characters | C++ Java | π₯π₯π₯π₯π₯ | recursion | 26 November 2017 |
| 12 | 438 | Find All Anagrams In a String | C++ Java | π₯π₯π₯π₯π₯ | sliding window | 20 August 2017 |
| 13 | 76 | Minimum Window Substring | C++ Java | π₯π₯π₯π₯π₯ | sliding window | 23 August 2017 |
| 14 | 567 | Permutation In String | C++ Java | π₯π₯π₯π₯π₯ | sliding window | 23 August 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 15 | 139 | Word Break | C++ Java | π₯π₯π₯π₯π₯ | 30 August 2017 | |
| 16 | 49 | Group Anagrams | C++ Java | βββ | 1 September 2017 | |
| 17 | 8 | String to Integer (atoi) | C++ Java | π₯π₯π₯ | see test cases:leading space, sign, overflow | 27 September 2017 |
| 18 | 28 | Implement strStr() | C++ Java | π₯π₯π₯π₯π₯ | see KMP Algo and the test cases | 27 September 2017 |
| 19 | 205 | Isomorphic Strings | C++ Java | π₯π₯π₯π₯π₯ | 27 September 2017 | |
| 20 | 290 | Word Pattern | C++ Java | π₯π₯π₯π₯π₯ | 27 September 2017 | |
| 21 | 125 | Valid Palindrome | C++ Java | π₯π₯π₯ | 27 September 2017 | |
| 22 | 242 | Valid Anagram | C++ Java | βββββ | hash and sort approach | 27 September 2017 |
| 23 | 387 | First Unique Character in a String | C++ Java | βββββ | we can traverse string or map twice | 27 September 2017 |
| 24 | 344 | Reverse String | C++ Java | βββ | 27 September 2017 | |
| 25 | 345 | Reverse Vowels of a String | C++ Java | βββ | 27 September 2017 | |
| 26 | 392 | Is Subsequence | C++ Java | π₯π₯π₯ | follow up important: if many strings to check, use binary search | 30 September 2017 |
| 27 | 58 | Length of Last Word | C++ Java | βββ | 26 October 2017 | |
| 28 | 621 | Task Scheduler | C++ Java | π₯π₯π₯π₯π₯ | 12 November 2017 | |
| 29 | 358 | Rearrange String k Distance Apart | C++ | π₯π₯π₯π₯π₯ | paid | 12 November 2017 |
| 30 | 443 | String Compression | C++ Java | π₯π₯π₯ | tricky for cases when cnt=1 and cnt>=10 | 14 November 2017 |
| 31 | 386 | Lexicographical Numbers | C++ Java | π₯π₯π₯ | tricky cases, see dfs approach and iterative one | 16 November 2017 |
| 32 | 394 | Decode String | C++ Java | π₯π₯π₯ | stack, recursion | 23 November 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 72 | Edit Distance | C++ Java | π₯π₯π₯π₯π₯ | 22 June 2017 | |
| 02 | 583 | Delete Operation for Two Strings | C++ Java | π₯π₯π₯π₯π₯ | tricky, similar to 72 | 22 June 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 03 | 10 | Regular Expression Matching | C++ Java | π₯π₯π₯π₯π₯ | 28 June 2017 | |
| 04 | 44 | Wildcard Matching | C++ Java | π₯π₯π₯π₯π₯ | 14 September 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 05 | 53 | Maximum Subarray | C++ Java | βββββ | 18 July 2017 | |
| 06 | 70 | Climbing Stairs | C++ Java | βββββ | note case n = 0 | 18 July 2017 |
| 07 | 91 | Decode Ways | C++ Java | π₯π₯π₯π₯π₯ | 18 July 2017 | |
| 08 | 198 | House Robber | C++ Java | π₯π₯π₯ | 30 July 2017 | |
| 09 | 152 | Maximum Product Subarray | C++ Java | π₯π₯π₯ | 1 August 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 10 | 322 | Coin Change | C++ Java | π₯π₯π₯ | 29 July 2017 | |
| 11 | 416 | Partition Equal Subset Sum | C++ Java | π₯π₯π₯π₯π₯ | see subset sum problem, like 0-1 knapsack, see O(n) space soln | 13 September 2017 |
| 12 | 698 | Partition to K Equal Sum Subsets | C++ Java | π₯π₯π₯π₯π₯ | see subset sum problem | 24 November 2017 |
| 13 | 64 | Minimum Path Sum | C++ Java | π₯π₯π₯ | 13 September 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 14 | 300 | Longest Increasing Subsequence | C++ Java | π₯π₯π₯ | 16 September 2017 | |
| 15 | 673 | Number of Longest Increasing Subsequence | C++ Java | π₯π₯π₯ | 16 September 2017 | |
| 16 | 334 | Increasing Triplet Subsequence | C++ Java | π₯π₯π₯ | 16 September 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 17 | 62 | Unique Paths | C++ | π₯π₯π₯ | 3 October 2017 | |
| 18 | 63 | Unique Paths II | C++ | π₯π₯π₯ | 3 October 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 19 | 221 | Maximal Square | C++ | π₯π₯π₯π₯π₯ | 5 October 2017 | |
| 20 | 84 | Largest Rectangle In Histogram | C++ | π₯π₯π₯π₯π₯ | 5 October 2017 | |
| 21 | 85 | Maximal Rectangle | C++ | π₯π₯π₯π₯π₯ | 5 October 2017 | |
| 21 | 0 | Maximum sum rectangle in a 2D matrix | C++ | π₯π₯π₯π₯π₯ | Dynamic Programming, Kadane Algo | 5 October 2017 |
| 21 | 0 | Largest rectangular sub-matrix whose sum is 0 | C++ | π₯π₯π₯π₯π₯ | 5 October 2017 | |
| 21 | 0 | Largest area rectangular sub-matrix with equal number of 1βs and 0βs | C++ | π₯π₯π₯π₯π₯ | 5 October 2017 | |
| -- | -- | -- | -- | -- | -- | -- |
| 22 | 329 | Longest Increasing Path in a Matrix | C++ Java | π₯π₯π₯π₯π₯ | see 79 | 26 October 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 23 | 279 | Perfect Squares | C++ Java | π₯π₯π₯π₯π₯ | see BFS, other DP, Math solutions | 29 October 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 11 | Container With Most Water | C++ Java | π₯π₯π₯π₯π₯ | greedy,nice | 18 July 2017 |
| 02 | 42 | Trapping Rain Water | C++ Java | π₯π₯π₯π₯π₯ | greedy,difficult | 18 July 2017 |
| 03 | 55 | Jump Game | C++ Java | π₯π₯π₯ | 25 July 2017 | |
| 04 | 134 | Gas Station | C++ Java | π₯π₯π₯π₯π₯ | 01 November 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 155 | Min Stack | C++ Java | 30 July 2017 | ||
| 02 | 150 | Evaluate Reverse Polish Notation | C++ Java | 30 July 2017 | ||
| 03 | 20 | Valid Parentheses | C++ Java | 11 August 2017 | ||
| 04 | 32 | Longest Valid Parentheses | C++ | π₯π₯π₯π₯π₯ | 23 August 2017 | |
| 05 | 678 | Valid Parentheses String | C++ Java | π₯π₯π₯π₯π₯ | 26 November 2017 | |
| 06 | 71 | Simplify Path | C++ Java | π₯π₯π₯π₯π₯ | 16 September 2017 | |
| 07 | 232 | Implement Queue using Stacks | C++ | π₯π₯π₯ | 6 October 2017 | |
| 08 | 339 | Nested List Weight Sum | C++ | π₯π₯π₯ | paid, like 394 decode string | 24 November 2017 |
| 09 | 364 | Nested List Weight Sum II | C++ | π₯π₯π₯ | paid, like 394 decode string | 24 November 2017 |
| 10 | 341 | Flatten Nested List Iterator | C++ Java | π₯π₯π₯ | 24 November 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 207 | Course Schedule | C++ Java | π₯π₯π₯π₯π₯ | topological sort | 14 August 2017 |
| 02 | 210 | Course Schedule II | C++ Java | π₯π₯π₯π₯π₯ | topological sort | 14 August 2017 |
| 03 | 133 | Clone Graph | C++ Java | π₯π₯π₯π₯π₯ | 17 September 2017 | |
| 04 | 261 | Graph Valid Tree | C++ | π₯π₯π₯π₯π₯ | paid | 6 October 2017 |
| 04 | 0 | Detect Cycle in a Graph | C++ | π₯π₯π₯π₯π₯ | 15 October 2017 | |
| 05 | 547 | Friend Circles | C++ Java | π₯π₯π₯π₯π₯ | 6 October 2017 | |
| 06 | 79 | Word Search | C++ Java | π₯π₯π₯π₯π₯ | two approach, visited matrix and change orig matrix | 7 October 2017 |
| 07 | 127 | Word Ladder | C++ Java | π₯π₯π₯π₯π₯ | 24 November 2017 | |
| 08 | 126 | Word Ladder II | C++ Java | π₯π₯π₯π₯π₯ | 24 November 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 146 | LRU Cache | C++ | π₯π₯π₯π₯π₯ | list used | 30 August 2017 |
| 02 | 315 | Count of Smaller Numbers After Self | C++ Java | π₯π₯π₯π₯π₯ | see BST, BIT approach too, count inversions | 30 September 2017 |
| -- | -- | -- | -- | -- | -- | -- |
| 03 | 208 | Implement Trie (Prefix Tree) | C++ Java | π₯π₯π₯π₯π₯ | Trie | 3 October 2017 |
| 04 | 211 | Add and Search Word - Data structure design | C++ Java | π₯π₯π₯π₯π₯ | Trie | 5 October 2017 |
| S.No | Prob # | Title | Solution | Tag | Note | Added on |
|---|---|---|---|---|---|---|
| 01 | 175 | Combine Two Tables | MySQL | βββ | 23 October 2017 | |
| 02 | 176 | Second Highest Salary | MySQL | βββ | limit/offset concept | 23 October 2017 |
| 03 | 177 | Nth Highest Salary | MySQL | π₯π₯π₯ | function concept | 25 October 2017 |
| 04 | 596 | Classes More Than 5 Students | MySQL | βββββ | 3 December 2017 | |
| 05 | 595 | Big Countries | MySQL | βββββ | union/union all concept | 7 April 2018 |
| 06 | 613 | Shortest Distance in a Line | MySQL | π₯π₯π₯π₯π₯ | paid, see solutions | 7 April 2018 |
| 07 | 627 | Swap Salary | MySQL | π₯π₯π₯ | concept: if/case..when..then | 7 April 2018 |
| 08 | 584 | Find Customer Referee | MySQL | π₯π₯π₯π₯π₯ | paid, see solutions, concept of 3 value logic - is null and is not null | 7 April 2018 |
| 09 | 586 | Customer Placing the Largest Number of Orders | MySQL | π₯π₯π₯π₯π₯ | paid,limit/offset concept see solutions,similar to 176, 177 | 8 April 2018 |
| 10 | 620 | Not Boring Movies | MySQL | βββ | MOD()/LOWER() concept | 8 April 2018 |
| 11 | 610 | Triangle Judgement | MySQL | π₯π₯π₯ | paid, concept: if/case..when..then, similar to 627 | 8 April 2018 |