Skip to content

artisan1218/LeetCode-Solution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LeetCode Solution

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

Other Questions

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