Records of all my solved problems on LeetCode
| Question # | Solution Link | Difficulty | Category | Demo | Language | LeetCode Link |
|---|---|---|---|---|---|---|
| 1 | twoSum | Easy | HashMap | False | Java | Two Sum |
| 2 | addTwoNums | Medium | Math | False | Java | Add Two Numbers |
| 3 | lenOfLongestSubstr | Medium | Sliding Window | True | Java | Longest Substring Without Repeating Characters |
| 4 | medianOf2SortedAry | Hard | Binary Search | True | Java | Median of Two Sorted Arrays |
| 5 | longestPalindrome | Medium | Dynamic Programming | True | Java | Longest Palindromic Substring |
| 6 | zigzagConversion | Medium | Str Traversal | True | Java | ZigZag Conversion |
| 7 | reverseInteger | Easy | Math | False | Java | Reverse Integer |
| 8 | atoi | Medium | Str Traversal, DFA | True | Java | String to Integer (atoi) |
| 9 | palindromeNum | Easy | Math | False | Java | Palindrome Number |
| 10 | regExpMatching | Hard | Dynamic Programming | True | Java | Regular Expression Matching |
| 11 | maxArea | Medium | Two Pointers | True | Java | Container With Most Water |
| 12 | intToRoman | Medium | Math | False | Java | Integer to Roman |
| 13 | romanToInt | Easy | Math | False | Java | Roman to Integer |
| 14 | lngstCommonPrefix | Easy | Str Traversal | False | Java, Python | Longest Common Prefix |
| 15 | threeSum | Medium | Two Pointers | False | Python | 3Sum |
| 16 | threeSumClosest | Medium | Two Pointers | False | Python | 3Sum Closest |
| 17 | phoneNumLetterComb | Medium | Math | True | Python | Letter Combinations of a Phone Number |
| 18 | fourSum | Medium | Two Pointers, Recursion | False | Python | 4Sum |
| 19 | rmNthNodeFromEnd | Medium | LinkedList | True | Java | Remove Nth Node From End of List |
| 20 | validParentheses | Easy | Stack, Turing Machine | True | Python, Java | Valid Parentheses |
| 21 | mergeTwoSortedArys | Easy | LinkedList | False | Java | Merge Two Sorted Lists |
| 22 | generateParentheses | Medium | Dynamic Programming, Backtracking | True | Python | Generate Parentheses |
| 23 | mergeKsortedArys | Hard | Priority Queue, Divide & Conquer | True | Java | Merge k Sorted Lists |
| 24 | swapPairs | Medium | LinkedList, Recursion | False | Java | Swap Nodes in Pairs |
| 25 | reverseKgroup | Hard | LinkedList | True | Java | Reverse Nodes in k-Group |
| 26 | rmDuplicatesFromList | Easy | Two Pointers | False | Python | Remove Duplicates from Sorted Array |
| 27 | rmElementsFromList | Easy | Two Pointers | False | Python | Remove Element |
| 28 | implementIndexOf | Easy | Sliding Window, Two Pointers | True | Python | Implement strStr() |
| 29 | divideTwoInts | Medium | Bit Manipulation | False | Java | Divide Two Integers |
| 30 | findSubstr | Hard | HashMap | True | Python | Substring with Concatenation of All Words |
| 31 | nextPermutation | Medium | Math | True | Python | Next Permutation |
| 32 | lngstValidParentheses | Hard | Stack, Dynamic Programming | True | Python | Longest Valid Parentheses |
| 33 | searchRotatedSortedAry | Medium | Binary Search | True | Python | Search in Rotated Sorted Array |
| 34 | searchRangeInSortedAry | Medium | Binary Search | False | Python | Find First and Last Position of Element in Sorted Array |
| 35 | searchInsertPos | Easy | Binary Search | False | Python | Search Insert Position |
| 36 | validSudoku | Medium | HashSet | False | Python | Valid Sudoku |
| 37 | solveSudoku | Hard | Backtracking | False | Python | Sudoku Solver |
| 38 | countAndSay | Medium | Str Traversal | True | Java | Count and Say |
| 39 | combinationSum | Medium | Backtracking, Dynamic Programming | True | Java | Combination Sum |
| 40 | combinationSum II | Medium | Backtracking, Dynamic Programming | False | Java | Combination Sum II |
| 41 | firstMissingPositive | Hard | In-place Hashing | True | Java | First Missing Positive |
| 42 | trappingRainWater | Hard | Dynamic Programming | True | Java, Python | Trapping Rain Water |
| 43 | multiplyStrings | Medium | Math | True | Python | Multiply Strings |
| 44 | wildcardMatching | Hard | Backtracking, Dynamic Programming | True | Python | Wildcard Matching |
| 45 | jumpGame2 | Medium | Greedy Algorithm | True | Java | Jump Game II |
| 46 | permutations | Medium | DFS | True | Python, C++ | Permutations |
| 47 | permutations2 | Medium | DFS | False | Python | Permutations II |
| 48 | rotateImage | Medium | List Manipulation | True | Python | Rotate Image |
| 49 | groupAnagrams | Medium | HashMap | False | Python | Group Anagrams |
| 50 | pow(x, n) | Medium | Binary Exponentiation | True | Python | Pow(x, n) |
| 51 | n-queens | Hard | Backtracking | False | Python | N-Queens |
| 52 | n-queens 2 | Hard | Backtracking | False | Python | N-Queens II |
| 53 | maximumSubarray | Easy | Dynamic Programming | True | Java | Maximum Subarray |
| 54 | spiralMatrix | Medium | List Traversal | False | Python | Spiral Matrix |
| 55 | jumpGame | Medium | Greedy Algorithm, Backtracking | False | Python | Jump Game |
| 56 | mergeIntervals | Medium | List Traversal | False | Python | Merge Intervals |
| 57 | insertIntervals | Medium | List Traversal | False | Python | Insert Interval |
| 58 | lengthOfLastWord | Easy | Str Traversal | False | Python | Length of Last Word |
| 59 | spiralMatrix II | Medium | List Traversal | False | Python | Spiral Matrix II |
| 60 | permutationSeq | Hard | Math | True | Python | Permutation Sequence |
| 61 | rotateList | Medium | LinkedList | False | Python | Rotate List |
| 62 | uniquePaths | Medium | DFS, Recursion | False | Python | Unique Paths |
| 63 | uniquePaths II | Medium | Dynamic Programming | True | Python | Unique Paths II |
| 64 | minPathSum | Medium | Dynamic Programming | False | Python | Minimum Path Sum |
| 65 | validNumber | Hard | DFA | True | Python | Valid Number |
| 66 | plusOne | Easy | Math | False | Python | Plus One |
| 67 | addBinary | Easy | Math | False | Python | Add Binary |
| 68 | textJustification | Hard | List Traversal | False | Python | Text Justification |
| 69 | sqrt(x) | Easy | Math | False | Python | Sqrt(x) |
| 70 | climbStairs | Easy | Math | False | Python | Climbing Stairs |
| 71 | simplifyPath | Medium | Str Traversal | False | Python | Simplify Path |
| 72 | editDistance | Hard | Dynamic Programming | True | Python | Edit Distance |
| 73 | setMatrixZero | Medium | List Traversal | True | Python | Set Matrix Zeroes |
| 74 | searchMatrix | Medium | Binary Search, List Traversal | False | Python | Search a 2D Matrix |
| 75 | sortColors | Medium | Two Pointers, Sorting | False | Python | Sort Colors |
| 76 | minWindow | Hard | Two Pointers | False | Python | Minimum Window Substring |
| 77 | combinations | Medium | Backtracking | False | Python | Combinations |
| 78 | subsets | Medium | Backtracking, Cascading | True | Python | Subsets |
| 79 | wordSearch | Medium | Backtracking | False | Python | Word Search |
| 80 | rmDupFromSortedAry II | Medium | Two Pointers | True | Python | Remove Duplicates from Sorted Array II |
| 81 | searchRotatedSortedAry II | Medium | Binary Search | False | Python | Search in Rotated Sorted Array II |
| 82 | rmDupFromSortedLst II | Medium | Two Pointers | False | Python | Remove Duplicates from Sorted List II |
| 83 | rmDupFromSortedLst | Easy | LinkedList, Recursion | True | Python | Remove Duplicates from Sorted List |
| 84 | largestRecInHist | Hard | Stack | False | Python | Largest Rectangle in Histogram |
| 85 | maxRec | Hard | Dynamic Programming | False | Python | Maximal Rectangle |
| 86 | partitionList | Medium | LinkedList, Two Pointers | False | Python | Partition List |
| 87 | scrambleString | Hard | Recursion | True | Python | Scramble String |
| 88 | mergeSortedAry | Easy | List Traversal | False | Python | Merge Sorted Array |
| 89 | grayCode | Medium | Bit Manipulation | False | Python | Gray Code |
| 90 | subsets II | Medium | DFS | False | Python | Subsets II |
| 91 | decodeWays | Medium | DFS, Dynamic Programming | True | Python | Decode Ways |
| 92 | reverseLinkedList II | Medium | LinkedList | False | Python | Reverse Linked List II |
| 93 | restoreIPaddr | Medium | Backtracking | False | Python | Restore IP Addresses |
| 94 | inorderTraversal | Easy | Binary Tree, DFS | True | Python | Binary Tree Inorder Traversal |
| 95 | uniqueBST II | Medium | Binary Tree, Recursion | True | Python | Unique Binary Search Trees II |
| 96 | uniqueBST | Medium | Dynamic Programming, Binary Tree | True | Python | Unique Binary Search Trees |
| 97 | interleavingStr | Medium | Dynamic Programming, Backtracking, DFS | False | Python | Interleaving String |
| 98 | validateBST | Medium | DFS, BFS, BST | False | Python | Validate Binary Search Tree |
| 99 | recoverBST | Medium | DFS, BST | False | Python | Recover Binary Search Tree |
| 100 | sameTree | Medium | DFS, BST | False | Python | Same Tree |
| 101 | symmetricTree | Easy | DFS, BST | False | Python | Symmetric Tree |
| 102 | levelOrderTraversal | Mediumn | BFS, BST | False | Python | Binary Tree Level Order Traversal |
| 103 | BTzigzagTraversal | Mediumn | BFS, BST | False | Python | Binary Tree Zigzag Level Order Traversal |
| 104 | maxDepthBST | Easy | DFS, BST | False | Python | Maximum Depth of Binary Tree |
| 105 | treeFromPre&Inorder | Medium | BST | False | Python | Construct Binary Tree from Preorder and Inorder Traversal |
| 106 | treeFromIn&Postorder | Medium | BST | False | Python | Construct Binary Tree from Inorder and Postorder Traversal |
| 107 | lvlOrderTraversal II | Medium | BFS, BST | False | Python | Binary Tree Level Order Traversal II |
| 108 | cvtSortedAryToBST | Easy | BST | False | Python | Convert Sorted Array to Binary Search Tree |
| 109 | cvtSortedLnkedListToBST | Medium | BST | False | Python | Convert Sorted List to Binary Search Tree |
| 110 | balancedBinaryTree | Easy | DFS | False | Python | Balanced Binary Tree |
| 111 | minDepthOfBinaryTree | Easy | DFS | False | Python | Minimum Depth of Binary Tree |
| 112 | pathSum | Easy | DFS | False | Python | Path Sum |
| 113 | pathSum II | Medium | DFS | False | Python | Path Sum II |
| 114 | flattenBT2LinkedList | Medium | Binary Tree | True | Python | Flatten Binary Tree to Linked List |
| 115 | distinctSubseq | Hard | DFS, Dynamic Programming | False | Python | Distinct Subsequences |
| 116 | populatingNextPtr | Medium | BFS | False | Python | Populating Next Right Pointers in Each Node |
| 117 | populatingNxtPtr II | Medium | BFS | False | Python | Populating Next Right Pointers in Each Node II |
| 118 | Pascal's triangle | Easy | Math | False | Python | Pascal's Triangle |
| 119 | Pascal's triangle II | Easy | Math | False | Python | Pascal's Triangle II |
| 120 | minTotalTriangle | Medium | Dynamic Programming | True | Python | Triangle |
| 121 | bestTimeToBuyAndSell | Easy | Two Pointers | True | Python | Best Time to Buy and Sell Stock |
| 122 | bestTimeToBuyAndSell II | Medium | Greedy Algorithm | True | Python | Best Time to Buy and Sell Stock II |
| 123 | bestTimeToBuyAndSell III | Hard | Dynamic Programming | False | Python | Best Time to Buy and Sell Stock III |
| 124 | BTMaxPathSum | Hard | Recursion | False | Python | Binary Tree Maximum Path Sum |
| 125 | validPalindrome | Easy | Two Pointers | False | Python | Valid Palindrome |
| 126 | wordLadder II | Hard | BFS | False | Python | Word Ladder II |
| 127 | wordLadder | Hard | BFS, Bidirectional BFS | True | Python | Word Ladder |
| 128 | longestConsecutiveSeq | Medium | List Traversal | True | Python | Longest Consecutive Sequence |
| 129 | root2LeafNumSum | Medium | DFS | False | Python, C++ | Sum Root to Leaf Numbers |
| 130 | surroundedRegions | Medium | DFS | False | C++ | Surrounded Regions |
| 131 | partitionPalindrome | Medium | DFS, Backtracking | True | C++ | Palindrome Partitioning |
| 132 | partitionPalindromeII | Hard | Dynamic Programming | True | C++ | Palindrome Partitioning II |
| 133 | cloneGraph | Medium | DFS | False | C++ | Clone Graph |
| 134 | gasStation | Medium | Greedy | False | C++ | Gas Station |
| 135 | candy | Hard | Greedy | False | C++ | Candy |
| 136 | singleNumber | Easy | Bit Manipulation | False | C++ | Single Number |
| 137 | singleNumber II | Medium | Bit Manipulation, Logic Circuit | True | C++ | Single Number II |
| 138 | copyLstW/RandomPtr | Medium | LinkedList, Map | True | C++ | Copy List with Random Pointer |
| 139 | wordBreak | Medium | Dynamic Programming | True | C++ | Word Break |
| 140 | wordBreak II | Hard | Backtracking | False | C++ | Word Break II |
| 141 | linkedListCycle | Easy | LinkedList | False | C++ | Linked List Cycle |
| 142 | linkedListCycle II | Medium | Two Pointers, LinkedList | True | C++ | Linked List Cycle II |
| 143 | reorderList | Medium | Two Pointers, LinkedList | False | C++ | Reorder List |
| 144 | preorderTraversal | Easy | Recursion, Morris Traversal, Stack | True | C++ | Binary Tree Preorder Traversal |
| 145 | postorderTraversal | Easy | Recursion, Stack | False | C++ | Binary Tree Postorder Traversal |
| 146 | LRUCache | Medium | LinkedList | False | C++ | LRUCache |
| 147 | insertionSortList | Medium | LinkedList | False | C++ | Insertion Sort List |
| 148 | sortList | Medium | Merge Sort, LinkedList | False | C++ | Sort List |
| 149 | maxPtsOnLine | Hard | Math | False | Python | Max Points on a Line |
| 150 | evalRevPolishNotation | Medium | Stack | False | Python | Evaluate Reverse Polish Notation |
| 151 | reverseWordsInStr | Medium | Str Manipulation | True | C++ | Reverse Words in a String |
| 152 | maxProductSubarray | Medium | Dynamic Programming | False | Python | Maximum Product Subarray |
| 153 | findMinInRotatedSortedAry | Medium | Binary Search | False | Python | Find Minimum in Rotated Sorted Array |
| 154 | findMinInRotatedSortedAry II | Hard | Binary Search | False | Python | Find Minimum in Rotated Sorted Array II |
| 155 | minStack | Medium | Stack | False | Python | Min Stack |
| 160 | intersecionOf2LL | Easy | LinkedList | False | Python | Intersection of Two Linked Lists |
| 162 | findPeakElement | Medium | Binary Search | False | Python | Find Peak Element |
| 164 | maxGap | Hard | Bucket Sort | False | Python | Maximum Gap |
| 165 | compareVersionNums | Medium | List Traversal | False | Python | Compare Version Numbers |
| 166 | fractionToDecimal | Medium | Math | True | Python | Fraction to Recurring Decimal |
| 167 | twoSum II | Medium | Two Pointers | False | Python | Two Sum II - Input Array Is Sorted |
| 168 | excelSheetColTitle | Easy | Math | False | Python | Excel Sheet Column Title |
| 169 | majorityElement | Easy | List Traversal | False | Python | Majority Element |
| 171 | excelSheetColNum | Easy | Math | True | Python, C++ | Excel Sheet Column Number |
| 172 | factorialTrailingZeroes | Medium | Math | False | Python | Factorial Trailing Zeroes |
| 173 | BSTIterator | Medium | BST | False | Python | Binary Search Tree Iterator |
| 174 | dungeonGame | Hard | Dynamic Programming | False | Python | Dungeon Game |
| 175 | combineTwoTables | Easy | SQL | False | SQL | Combine Two Tables |
| 176 | secondHighestSalary | Medium | SQL | False | SQL | Second Highest Salary |
| 177 | NthHighestSalary | Medium | SQL | False | SQL | Nth Highest Salary |
| 178 | rankScores | Medium | SQL | False | SQL | Rank Scores |
| 179 | largestNumber | Medium | Sorting | False | Python | Largest Number |
| 180 | consecutiveNumbers | Medium | SQL | False | SQL | Consecutive Numbers |
| 181 | employeeWithHigherSalary | Easy | SQL | False | SQL | Employees Earning More Than Their Managers |
| 182 | duplicateEmails | Easy | SQL | False | SQL | Duplicate Emails |
| 183 | customersWithoutOrders | Easy | SQL | False | SQL | Customers Who Never Order |
| 184 | departmentHighestSalary | Medium | SQL | False | SQL | Department Highest Salary |
| 185 | departmentTop3Salaries | Hard | SQL | False | SQL | Department Top Three Salaries |
| 187 | repeatedDNASequences | Medium | Sliding Window | False | Python | Repeated DNA Sequences |
| 188 | bestTimeToBuyAndSell IV | Hard | Dynamic Programming | False | Python | Best Time to Buy and Sell Stock IV |
| 189 | rotateArray | Medium | Array | False | Python | Rotate Array |
| 190 | reverseBits | Easy | Bit Manipulation | False | Python | Reverse Bits |
| 191 | 1BitsCount | Easy | Bit Manipulation | False | Python | Number of 1 Bits |
| 198 | houseRobber | Medium | Dynamic Programming | False | Python | House Robber |
| 200 | numIslands | Medium | DFS | False | Python | Number of Islands |
| 206 | reverseLinkedList | Easy | LinkedList | True | Python | Reverse Linked List |
| 208 | Trie | Medium | Trie | False | C++ | Implement Trie (Prefix Tree) |
| 213 | houseRobber 2 | Medium | Dynamic Programming | True | C++ | House Robber II |
| 215 | kthLargestElementInAry | Medium | Quickselect | True | Python | Kth Largest Element in an Array |
| 221 | maxSquare | Medium | Dynamic Programming | False | Python | Maximal Square |
| 290 | wordPattern | Easy | HashMap | False | Python, C++ | Word Pattern |
| 322 | coinChange | Medium | DFS, Dynamic Programming | False | C++ | Coin Change |
| 332 | reconstructIternary | Hard | Stack, Backtracking | False | Python | Reconstruct Itinerary |
| 337 | houseRobber 3 | Medium | DFS Memorization | False | C++ | House Robber III |
| 359 | loggerRateLimiter | Easy | Hash | False | Python | Logger Rate Limiter |
| 366 | findLeavesOfBST | Medium | Binary Tree, DFS | False | Python | Find Leaves of Binary Tree |
| 418 | screenSentenceFitting | Medium | List Traversal | False | Python | Sentence Screen Fitting |
| 450 | deleteNodeInBST | Medium | BST | False | Python | Delete Node in a BST |
| 678 | validParenthesisStr | Medium | DFS, Dynamic Programming, Greedy | False | Python | Valid Parenthesis String |
| 690 | employeeImportance | Easy | BFS, DFS | False | Python | Employee Importance |
| 696 | countBinarySubstr | Easy | Two Pointers | True | Python | Count Binary Substrings |
| 735 | asteroidCollision | Medium | Stack | False | Python | Asteroid Collision |
| 753 | crackSafe | Hard | Backtracking, Hierholzer Algorithm, Eulerian Cycle | True | C++ | Cracking the Safe |
| 787 | cheapestFlights | Medium | Bellman Ford's Algorithm, Dijkstra's Algorithm, Dynamic Programming | False | C++ | Cheapest Flights Within K Stops |
| 792 | numOfMatchingSubseq | Medium | Binary Search, Pointer | False | Python | Number of Matching Subsequences |
| 833 | find&ReplaceInStr | Medium | String Manipulation | False | Python | Find And Replace in String |
| 843 | guessWord | Hard | Game Theory | False | Python | Guess the Word |
| 853 | carFleet | Medium | List Traversal | False | Python | Car Fleet |
| 923 | threeSumMulti | Medium | Two Pointers, Math | True | C++ | 3Sum With Multiplicity |
| 931 | minFallingPathSum | Medium | Dynamic Programming | False | Python | Minimum Falling Path Sum |
| 981 | timeBasedKeyValStore | Medium | Binary Search | False | Python | Time Based Key-Value Store |
| 983 | minCostsForTickets | Medium | Dynamic Programming, DFS | False | Python | Minimum Cost For Tickets |
| 1004 | maxConsecutiveOnes III | Medium | Sliding Window | False | Python | Max Consecutive Ones III |
| 1048 | longestStrChain | Medium | Dynamic Programming, DFS | False | Python | Longest String Chain |
| 1110 | delNodes&ReturnForest | Medium | DFS | False | Python | Delete Nodes And Return Forest |
| 1146 | snapshotArray | Medium | Binary Search | False | Python | Snapshot Array |
| 1278 | palindromePartitioning III | Hard | Dynamic Programming, DFS Memorization | True | C++ | Palindrome Partitioning III |
| 1423 | maxPointsFromCards | Medium | Sliding Window, Two Pointers | False | Python | Maximum Points You Can Obtain from Cards |
| 1428 | minDaysBloom | Medium | Binary Search | False | Python | Minimum Number of Days to Make m Bouquets |
| 1509 | minDiffBetMax&Min | Medium | Backtracking | False | Python | Minimum Difference Between Largest and Smallest Value in Three Moves |
| 1525 | numOfWaysToSplitStr | Medium | HashMap | False | Python | Number of Good Ways to Split a String |
| 1526 | minNumOfIncrement | Hard | Dynamic Programming | True | Python | Minimum Number of Increments on Subarrays to Form a Target Array |
| 1548 | mostSimilarPath | Hard | Dynamic Programming | True | Python | The Most Similar Path in a Graph |
| 1610 | maxNumVisiblePts | Hard | Sliding Window, Geometry | False | Python | Maximum Number of Visible Points |
| 1776 | carFleet II | Hard | Stack, Monotonic Stack | False | Python | Car Fleet II |
| 1834 | singleThreadedCPU | Medium | Min-Heap, Priority Queue | False | C++ | Single-Threaded CPU |
| 1937 | maxPointsWithCost | Medium | Dynamic Programming | False | Python | Maximum Number of Points with Cost |
| Question | Solution Link | Category | Demo | Language |
|---|---|---|---|---|
| Permutation of if-blocks | ifBlockPermutations | DFS, Backtracking | False | Python |
| Image Matching | imageMatching | Stack, DFS | False | Python |
| Remove B | removeB | DFS | False | Python |
| Inversion | Inversion | Dynamic Programming, Backtracking | False | Python |
| Shortest Rainbow Path | shortestRainbowPath | Dijkstra's algorithm | False | Python |
| Knapsack Problem | knapsack | Genetic Algorithm, Dynamic Programming | False | Python, C++ |
| Min Health | getMinHealth | Priority Queue | False | Python |
| Visiting Cities | minCost | Dynamic Programming | False | Python |