Skip to content

Latest commit

 

History

History
215 lines (212 loc) · 26.3 KB

hard.md

File metadata and controls

215 lines (212 loc) · 26.3 KB

LeetCode Hard Problems

A collection of LeetCode Hard difficulty problems solved with step-by-step explanations, pattern categorization, and optimized source code.

Problem Index

# Problem Pattern Language Time Space
4 Median of Two Sorted Arrays Binary Search Python O(n) O(1)
10 Regular Expression Matching Dynamic Programming JavaScript O(n) O(n)
23 Merge k Sorted Lists Two Pointers Python O(n) O(1)
25 Reverse Nodes in k-Group Two Pointers Python O(n) O(1)
30 Substring with Concatenation of All Words Sliding Window Python O(n) O(1)
32 Longest Valid Parentheses Stack & Queue Python O(n) O(n)
37 Sudoku Solver Array / General Python O(n) O(1)
41 First Missing Positive Array / General Python O(n) O(1)
42 Trapping Rain Water Array / General Python O(n) O(1)
44 Wildcard Matching Array / General Python O(n) O(1)
51 N-Queens Tree & Graph Python O(n) O(n)
52 N-Queens II Array / General Python O(n) O(1)
60 Permutation Sequence Backtracking Python O(n) O(1)
65 Valid Number Array / General Python O(n) O(1)
68 Text Justification Heap Python O(n) O(n)
76 Minimum Window Substring Sliding Window PHP O(n) O(1)
84 Largest Rectangle in Histogram Monotonic Stack TypeScript O(n) O(n)
85 Maximal Rectangle Math & Logic Python O(n) O(1)
87 Scramble String Array / General JavaScript O(n) O(1)
115 Distinct Subsequences Dynamic Programming JavaScript O(n) O(n)
123 Best Time to Buy and Sell Stock III Array / General JavaScript O(n) O(1)
124 Binary Tree Maximum Path Sum Tree & Graph JavaScript O(n) O(n)
126 Word Ladder II Hash Map Python O(n) O(n)
127 Word Ladder Hash Map JavaScript O(n) O(n)
135 Candy Array / General JavaScript O(n) O(1)
140 Word Break II Hash Map Python O(n) O(n)
149 Max Points on a Line Array / General Python O(n) O(1)
154 Find Minimum in Rotated Sorted Array II Binary Search C++ O(n) O(1)
185 Department Top Three Salaries Database / SQL SQL O(n) O(n)
188 Best Time to Buy and Sell Stock IV Array / General JavaScript O(n) O(1)
212 Word Search II Binary Search JavaScript O(n) O(1)
214 Shortest Palindrome Two Pointers Python O(n) O(1)
218 The Skyline Problem Dynamic Programming JavaScript O(n) O(n)
220 Contains Duplicate III Array / General Python O(n) O(1)
224 Basic Calculator Bit Manipulation JavaScript O(n) O(1)
233 Number of Digit One Math & Logic Python O(n) O(1)
239 Sliding Window Maximum Sliding Window Python O(n) O(1)
262 Trips and Users Database / SQL SQL O(n) O(n)
273 Integer to English Words Array / General Python O(n) O(1)
282 Expression Add Operators Array / General Python O(n) O(1)
295 Find Median from Data Stream Array / General JavaScript O(n) O(1)
297 Serialize and Deserialize Binary Tree Binary Search Python O(n) O(1)
301 Remove Invalid Parentheses Stack & Queue Python O(n) O(n)
312 Burst Balloons Array / General Python O(n) O(1)
315 Count of Smaller Numbers After Self Array / General JavaScript O(n) O(1)
321 Create Maximum Number Array / General Python O(n) O(1)
327 Count of Range Sum Bit Manipulation JavaScript O(n) O(1)
329 Longest Increasing Path in a Matrix Tree & Graph Python O(n) O(n)
330 Patching Array Array / General Python O(n) O(1)
332 Reconstruct Itinerary Array / General Python O(n) O(1)
335 Self Crossing Array / General Python O(n) O(1)
336 Palindrome Pairs Two Pointers Python O(n) O(1)
352 Data Stream as Disjoint Intervals Heap Python O(n) O(n)
354 Russian Doll Envelopes Array / General JavaScript O(n) O(1)
363 Max Sum of Rectangle No Larger Than K Math & Logic Python O(n) O(1)
391 Perfect Rectangle Math & Logic Python O(n) O(1)
403 Frog Jump Array / General Python O(n) O(1)
407 Trapping Rain Water II Array / General Python O(n) O(1)
410 Split Array Largest Sum Array / General Python O(n) O(1)
420 Strong Password Checker Array / General Python O(n) O(1)
432 All O`one Data Structure Array / General Python O(n) O(1)
440 K-th Smallest in Lexicographical Order Array / General Python O(n) O(1)
458 Poor Pigs Array / General Python O(n) O(1)
460 LFU Cache Hash Map Python O(n) O(n)
466 Count The Repetitions Tree & Graph Python O(n) O(n)
472 Concatenated Words Array / General Python O(n) O(1)
479 Largest Palindrome Product Two Pointers Python O(n) O(1)
480 Sliding Window Median Sliding Window Python O(n) O(1)
483 Smallest Good Base Array / General Python O(n) O(1)
493 Reverse Pairs Array / General JavaScript, Python O(n) O(1)
502 IPO Bit Manipulation JavaScript O(n) O(1)
514 Freedom Trail Array / General Python O(n) O(1)
517 Super Washing Machines Array / General Python O(n) O(1)
546 Remove Boxes Array / General Python O(n) O(1)
552 Student Attendance Record II Array / General Python O(n) O(1)
587 Erect the Fence Tree & Graph Python O(n) O(n)
591 Tag Validator Array / General Python O(n) O(1)
600 Non-negative Integers without Consecutive Ones Array / General Python O(n) O(1)
601 Human Traffic of Stadium Database / SQL SQL O(n) O(n)
629 K Inverse Pairs Array Array / General Python O(n) O(1)
630 Course Schedule III Array / General Python O(n) O(1)
632 Smallest Range Covering Elements from K Lists Array / General Python O(n) O(1)
639 Decode Ways II Array / General Python O(n) O(1)
664 Strange Printer Array / General Python O(n) O(1)
668 Kth Smallest Number in Multiplication Table Array / General Python O(n) O(1)
773 Sliding Puzzle Sliding Window Python O(n) O(1)
778 Swim in Rising Water Array / General Python O(n) O(1)
780 Reaching Points Array / General Python O(n) O(1)
810 Chalkboard XOR Game Bit Manipulation Python O(n) O(1)
818 Race Car Array / General Python O(n) O(1)
843 Guess the Word Array / General Python O(n) O(1)
850 Rectangle Area II Math & Logic Python O(n) O(1)
878 Nth Magical Number Array / General Python O(n) O(1)
882 Reachable Nodes In Subdivided Graph Two Pointers Python O(n) O(1)
913 Cat and Mouse Array / General Python O(n) O(1)
940 Distinct Subsequences II Dynamic Programming JavaScript O(n) O(n)
1036 Escape a Large Maze Array / General Python O(n) O(1)
1044 Longest Duplicate Substring Array / General Python O(n) O(1)
1096 Brace Expansion II Array / General JavaScript O(n) O(1)
1147 Longest Chunked Palindrome Decomposition Two Pointers Python O(n) O(1)
1157 Online Majority Element In Subarray Array / General JavaScript O(n) O(1)
1250 Check If It Is a Good Array Array / General Python O(n) O(1)
1301 Number of Paths with Max Score Dynamic Programming PHP O(n) O(n)
1316 Distinct Echo Substrings Array / General Python O(n) O(1)
1340 Jump Game V Dynamic Programming C++ O(n) O(n)
1345 Jump Game IV Hash Map C++ O(n) O(n)
1354 Construct Target Array With Multiple Sums Array / General JavaScript O(n) O(1)
1368 Minimum Cost to Make at Least One Valid Path in a Grid Tree & Graph Python O(n) O(n)
1392 Longest Happy Prefix Prefix Sum Python O(n) O(n)
1406 Stone Game III Dynamic Programming PHP O(n) O(n)
1483 Kth Ancestor of a Tree Node Binary Search JavaScript O(n) O(1)
1505 Minimum Possible Integer After at Most K Adjacent Swaps On Digits Math & Logic JavaScript O(n) O(1)
1510 Stone Game IV Dynamic Programming TypeScript O(n) O(n)
1520 Maximum Number of Non-Overlapping Substrings Heap JavaScript O(n) O(n)
1563 Stone Game V Prefix Sum Java O(n) O(n)
1569 Number of Ways to Reorder Array to Get Same BST Binary Search Python O(n) O(1)
1649 Create Sorted Array through Instructions Array / General JavaScript O(n) O(1)
1665 Minimum Initial Energy to Finish Tasks Binary Search C++ O(log n) O(1)
1728 Cat and Mouse II Array / General Python O(n) O(1)
1819 Number of Different Subsequences GCDs Dynamic Programming Python O(n) O(n)
1840 Maximum Building Height Tree & Graph Python O(n) O(n)
1851 Minimum Interval to Include Each Query Heap Python O(n) O(n)
1866 Number of Ways to Rearrange Sticks With K Sticks Visible Array / General Python O(n) O(1)
1872 Stone Game VIII Prefix Sum Java O(n) O(n)
1923 Longest Common Subpath Tree & Graph Python O(n) O(n)
1928 Minimum Cost to Reach Destination in Time Array / General Python O(n) O(1)
1964 Find the Longest Valid Obstacle Course at Each Position Array / General JavaScript O(n) O(1)
1998 GCD Sort of an Array Array / General Python O(n) O(1)
2045 Second Minimum Time to Reach Destination Tree & Graph Python O(n) O(n)
2179 Count Good Triplets in an Array Tree & Graph JavaScript O(n) O(n)
2183 Count Array Pairs Divisible by K Array / General Python O(n) O(1)
2193 Minimum Number of Moves to Make Palindrome Two Pointers JavaScript O(n) O(1)
2197 Replace Non-Coprime Numbers in Array Bit Manipulation Python O(n) O(1)
2213 Longest Substring of One Repeating Character Binary Search Java O(n) O(1)
2267 Check if There Is a Valid Parentheses String Path Stack & Queue C++ O(n) O(n)
2267 Check if There Is a Valid Parentheses String Path Stack & Queue C++ O(n) O(n)
2286 Booking Concert Tickets in Groups Array / General JavaScript O(n) O(1)
2290 Minimum Obstacle Removal to Reach Corner Array / General Python O(n) O(1)
2344 Minimum Deletions to Make Array Divisible Hash Map Python O(n) O(n)
2407 Longest Increasing Subsequence II Dynamic Programming JavaScript O(n) O(n)
2426 Number of Pairs Satisfying Inequality Array / General JavaScript O(n) O(1)
2472 Maximum Number of Non-overlapping Palindrome Substrings Two Pointers JavaScript O(n) O(1)
2509 Cycle Length Queries in a Tree Fast & Slow Pointers JavaScript O(n) O(1)
2543 Check if Point Is Reachable Array / General Python O(n) O(1)
2552 Count Increasing Quadruplets Array / General Python O(n) O(1)
2630 Memoize II Hash Map TypeScript O(n) O(n)
2650 Design Cancellable Function Array / General TypeScript O(n) O(1)
2659 Make Array Empty Hash Map JavaScript O(n) O(n)
2709 Greatest Common Divisor Traversal Array / General Python O(n) O(1)
2736 Maximum Sum Queries Tree & Graph JavaScript O(n) O(n)
2867 Count Valid Paths in a Tree Tree & Graph JavaScript O(n) O(n)
2897 Apply Operations on Array to Maximize Sum of Squares Stack & Queue JavaScript O(n) O(n)
2916 Subarrays Distinct Element Sum of Squares II Array / General JavaScript, Python O(n) O(1)
2926 Maximum Balanced Subsequence Sum Dynamic Programming JavaScript O(n) O(n)
2940 Find Building Where Alice and Bob Can Meet Array / General JavaScript O(n) O(1)
3008 Find Beautiful Indices in the Given Array II Array / General Python O(n) O(1)
3072 Distribute Elements Into Two Arrays II Array / General JavaScript O(n) O(1)
3093 Longest Common Suffix Queries Hash Map Python O(n) O(n)
3116 Kth Smallest Amount With Single Denomination Combination Backtracking Java O(n) O(1)
3161 Block Placement Queries Tree & Graph Python O(n) O(n)
3187 Peaks in Array Array / General JavaScript O(n) O(1)
3245 Alternating Groups III Array / General JavaScript O(n) O(1)
3283 Maximum Number of Moves to Kill All Pawns Array / General Python O(n) O(1)
3312 Sorted GCD Pair Queries Dynamic Programming PHP O(n) O(n)
3336 Find the Number of Subsequences With Equal GCD Dynamic Programming PHP O(n) O(n)
3348 Smallest Divisible Digit Product II Math & Logic Python, TypeScript O(n) O(1)
3378 Count Connected Components in LCM Graph Array / General Python O(n) O(1)
3382 Maximum Area Rectangle With Point Constraints II Math & Logic JavaScript O(n) O(1)
3414 Maximum Score of Non-overlapping Intervals Heap JavaScript O(n) O(n)
3451 Find Invalid IP Addresses Database / SQL SQL O(n) O(n)
3454 Separate Squares II Array / General Python O(n) O(1)
3482 Analyze Organization Hierarchy Array / General Python O(n) O(1)
3501 Maximize Active Section with Trade II Array / General PHP O(n) O(1)
3515 Shortest Path in a Weighted Tree Tree & Graph JavaScript O(n) O(n)
3518 Smallest Palindromic Rearrangement II Tree & Graph PHP O(n) O(n)
3525 Find X Value of Array II Binary Search JavaScript O(n) O(1)
3534 Path Existence Queries in a Graph II Tree & Graph PHP O(n) O(n)
3554 Find Category Recommendation Pairs Array / General Python O(n) O(1)
3559 Number of Ways to Assign Edge Weights II Tree & Graph Python O(n) O(n)
3614 Process String with Special Operations II Tree & Graph Python O(n) O(n)
3617 Find Students with Study Spiral Pattern Database / SQL SQL O(n) O(n)
3620 Network Recovery Pathways Tree & Graph PHP O(n) O(n)
3624 Number of Integers With Popcount-Depth Equal to K II Bit Manipulation Python O(n) O(1)
3636 Threshold Majority Queries Hash Map Python O(n) O(n)
3671 Sum of Beautiful Subsequences Dynamic Programming Python O(n) O(n)
3673 Find Zombie Sessions Database / SQL SQL O(n) O(n)
3691 Maximum Total Subarray Value II Array / General Python O(n) O(1)
3699 Number of ZigZag Arrays I Hash Map PHP O(n) O(n)
3700 Number of ZigZag Arrays II Tree & Graph PHP O(n) O(n)
3721 Longest Balanced Subarray II Array / General Python O(n) O(1)
3734 Lexicographically Smallest Palindromic Permutation Greater Than Target Backtracking Java O(n) O(1)
3739 Count Subarrays With Majority Element II Array / General PHP O(n) O(1)
3753 Total Waviness of Numbers in Range II Bit Manipulation Python O(n) O(1)
3762 Minimum Operations to Equalize Subarrays Array / General Python O(n) O(1)
3764 Most Common Course Pairs Database / SQL SQL O(n) O(n)
3826 Minimum Partition Score Array / General Python O(n) O(1)
3832 Find Users with Persistent Behavior Patterns Database / SQL SQL O(n) O(n)
3841 Palindromic Path Queries in a Tree Tree & Graph Python O(n) O(n)
3855 Sum of K-Digit Numbers in a Range Bit Manipulation Python O(n) O(1)
3864 Minimum Cost to Partition a Binary String Tree & Graph Python O(n) O(n)
3943 Number of Pairs After Increment Array / General Python O(n) O(1)
3962 Maximum Subarray Sum After at Most K Swaps Array / General C++ O(n) O(1)
4013 Count Subarrays With Even Odd Ratio II Two Pointers Python O(n) O(1)
4017 Peaks in Array II Array / General Python O(n) O(1)
4033 Valid K-Unique Subarrays I Hash Map Python O(n) O(n)
4051 Count Subarrays with Distant Sums Array / General Python O(n) O(1)
4055 Count Shadow Pairs II Array / General Python O(n) O(1)