| 1 |
[Merge K Sorted Lists](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardMerge K Sorted Lists.java) |
| 2 |
[Serialize and Deserialize a Binary Tree](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardSerialize and Deserialize a Binary Tree.java) |
| 3 |
[Palindrome Pairs](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardPalindrome Pairs.java) |
| 4 |
[Binary Tree PostOrder Traversal](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardBinary Tree PostOrder Traversal.java) |
| 5 |
[Largest Rectangle in Histogram](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLargest Rectangle in Histogram.java) |
| 6 |
[Trapping Rain Water](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardTrapping Rain Water.java) |
| 7 |
[Parallel Courses](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardParallel Courses.java) |
| 8 |
[LFU Cache](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLFU Cache.java) |
| 9 |
[Unique Paths III](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardUnique Paths III.java) |
| 10 |
[Integer to English Words](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardInteger to English Words.java) |
| 11 |
[Number of Valid Subarrays](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardNumber of Valid Subarrays.java) |
| 12 |
Candy |
| 13 |
[Odd Even Jump](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardOdd Even Jump.java) |
| 14 |
[Longest Consecutive Sequence](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLongest Consecutive Sequence.java) |
| 15 |
[Substring with Concatenation of All Words](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardSubstring with Concatenation of All Words.java) |
| 16 |
[Median of Two Sorted Arrays](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardMedian of Two Sorted Arrays.java) |
| 17 |
[Longest Substring with At Most K Distinct Characters](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLongest Substring with At Most K Distinct Characters.java) |
| 18 |
[Closest Binary Search Tree Values II](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardClosest Binary Search Tree Values II.java) |
| 19 |
[Edit Distance](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardEdit Distance.java) |
| 20 |
[Longest Palindrome Product](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLongest Palindrome Product.java) |
| 21 |
[K Empty Slots](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardK Empty Slots.java) |
| 22 |
[Cut Off Trees for Golf Event](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardCut Off Trees for Golf Event.java) |
| 23 |
[Word Break II](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardWord Break II.java) |
| 24 |
[LRU Cache](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLRU Cache.java) |
| 25 |
[Parsing A Boolean Expression](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardParsing A Boolean Expression.java) |
| 26 |
[Maximum Frequency Stack](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardMaximum Frequency Stack.java) |
| 27 |
N-Queens |
| 28 |
[Sliding Window Maximum](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardSliding Window Maximum.java) |
| 29 |
[Optimal Account Balancing](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardOptimal Account Balancing.java) |
| 30 |
[Divide Array Into Increasing Sequences](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardDivide Array Into Increasing Sequences.java) |
| 31 |
[Serialize and Deserialize N-ary Tree](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardSerialize and Deserialize N-ary Tree.java) |
| 32 |
[Word Search II](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardWord Search II.java) |
| 33 |
[Insert Delete GetRandom O(1) - Duplicates Allowed](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardInsert Delete GetRandom O(1) - Duplicates Allowed.java) |
| 34 |
[Recover a Tree From Preorder Traversal](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardRecover a Tree From Preorder Traversal.java) |
| 35 |
[Text Justification](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardText Justification.java) |
| 36 |
[Find Median From Data Stream](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardFind Median From Data Stream.java) |
| 37 |
[Number of Submatrices That Sum to Target](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardNumber of Submatrices That Sum to Target.java) |
| 38 |
[First Missing Positive](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardFirst Missing Positive.java) |
| 39 |
[Minimum Window Substring](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardMinimum Window Substring.java) |
| 40 |
[Stream of Characters](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardStream of Characters.java) |
| 41 |
[Prefix and Suffix Search](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardPrefix and Suffix Search.java) |
| 42 |
[Longest Substring with At Most Two Distinct Characters](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLongest Substring with At Most Two Distinct Characters.java) |
| 43 |
[Find Minimum in Rotated Sorted Array II](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardFind Minimum in Rotated Sorted Array II.java) |
| 44 |
[Sliding Window Median](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardSliding Window Median.java) |
| 45 |
[Basic Calculator](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardBasic Calculator.java) |
| 46 |
[Binary Tree Maximum Path Sum](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardBinary Tree Maximum Path Sum.java) |
| 47 |
[Interleaving String](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardInterleaving String.java) |
| 48 |
[Valid Number](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardValid Number.java) |
| 49 |
[Robot Room Cleaner](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardRobot Room Cleaner.java) |
| 50 |
[Employee Free Time](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardEmployee Free Time.java) |
| 51 |
[Design Search Autocomplete System](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardDesign Search Autocomplete System.java) |
| 52 |
[Basic Calculator III](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardBasic Calculator III.java) |
| 53 |
[Longest Increasing Path in a Matrix](https://github.com/varunu28/LeetCode-Java-Solutions/tree/master/HardLongest Increasing Path in a Matrix.java) |