An open API service indexing awesome lists of open source software.

https://github.com/souravcoder1/interview-preperation


https://github.com/souravcoder1/interview-preperation

Last synced: 2 days ago
JSON representation

Awesome Lists containing this project

README

          

# Leetcode solutions in Java

My accepted leetcode solutions to some of the common interview problems.

#### [Array](problems/src/array)

- [Pascals Traiangle II](problems/src/array/PascalsTriangle.java) (Easy)
- [Product Of Array Except Self](problems/src/array/ProductOfArrayExceptSelf.java) (Medium)
- [Rotate Matrix](problems/src/array/RotateMatrix.java) (Medium)
- [Set Matrix Zeroes](problems/src/array/SetMatrixZeroes.java) (Medium)
- [Third Maximum Number](problems/src/array/ThirdMaximumNumber.java) (Easy)
- [Two Sum](problems/src/array/TwoSum.java) (Easy)
- [TwoSum II](problems/src/array/TwoSumII.java) (Easy)
- [Can Place Flowers](problems/src/array/CanPlaceFlowers.java) (Easy)
- [Merge Intervals](problems/src/array/MergeIntervals.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [First Missing Positive](problems/src/array/FirstMissingPositive.java) (Hard)
- [Fruit Into Baskets](problems/src/array/FruitIntoBaskets.java) (Medium)
- [MaxProduct Of Three Numbers](problems/src/array/MaxProductOfThreeNumbers.java) (Easy)
- [Missing Number](problems/src/array/MissingNumber.java) (Easy)
- [Merge Sorted Array](problems/src/array/MergeSortedArray.java) (Easy)
- [Rotate Array](problems/src/array/RotateArray.java) (Easy)
- [Sort Colors](problems/src/array/SortColors.java) (Medium)
- [Battleships in a Board](problems/src/array/BattleshipsInABoard.java) (Medium)
- [Find the Celebrity](problems/src/array/FindTheCelebrity.java) (Medium)
- [Meeting Rooms](problems/src/array/MeetingRooms.java) (Easy)
- [Longest Continuous Increasing Subsequence](problems/src/array/LongestIncreasingSubsequence.java) (Easy)
- [Sparse Matrix Multiplication](problems/src/array/SparseMatrixMultiplication.java) (Medium)
- [Read N Characters Given Read4](problems/src/array/ReadNCharacters.java) (Easy)
- [Maximum Swap](problems/src/array/MaximumSwap.java) (Medium)
- [H-Index](problems/src/array/HIndex.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Insert Interval](problems/src/array/InsertInterval.java) (Hard)
- [Increasing Triplet Subsequence](problems/src/array/IncreasingTripletSubsequence.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [K Empty Slots](problems/src/array/KEmptySlots.java) (Hard)
- [Subarray Sum Equals K](problems/src/array/SubarraySumEqualsK.java) (Medium)
- [Pour Water](problems/src/array/PourWater.java) (Medium)
- [Relative Ranks](problems/src/array/RelativeRanks.java) (Easy)
- [Next Greater Element I](problems/src/array/NextGreaterElementI.java) (Easy)
- [Largest Number At Least Twice of Others](problems/src/array/LargestNumberAtLeastTwice.java) (Easy)
- [Minimum Moves to Equal Array Elements II](problems/src/array/MinimumMovesToEqualArray.java) (Median)
- [Image Smoother](problems/src/array/ImageSmoother.java) (Easy)
- [Minimum Index Sum of Two Lists](problems/src/array/MinimumIndexSumOfTwoLists.java) (Easy)
- [Card Flipping Game](problems/src/array/CardFilipGame.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Employee Free Time](problems/src/array/EmployeeFreeTime.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Best Meeting Point](problems/src/array/BestMeetingPoint.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [My Calendar III](problems/src/array/MyCalendarThree.java) (Hard)
- [Champagne Tower](problems/src/array/ChampagneTower.java) (Medium)
- [Valid Tic-Tac-Toe State](problems/src/array/ValidTicTacToeState.java) (Medium)
- [Number of Subarrays with Bounded Maximum](problems/src/array/SubArraysWithBoundedMaximum.java) (Medium)
- [Surface Area of 3D Shapes](problems/src/array/SurfaceAreaOfThreeDShapes.java) (Easy)
- [Max Consecutive Ones](problems/src/array/MaxConsecutiveOnes.java) (Easy)
- [Max Consecutive Ones II](problems/src/array/MaxConsecutiveOnesII.java) (Medium)
- [Add to Array-Form of Integer](problems/src/array/AddToArrayFormOfInteger.java) (Easy)
- [Find Pivot Index](problems/src/array/FindPivotIndex.java) (Easy)
- [Largest Time for Given Digits](problems/src/array/LargestTimeForGivenDigits.java) (Easy)
- [Minimum Time Difference](problems/src/array/MinimumTimeDifference.java) (Medium)
- [Reveal Cards In Increasing Order](problems/src/array/RevealCardsInIncreasingOrder.java) (Medium)
- [Sort Array By Parity II](problems/src/array/SortArrayByParityII.java) (Easy)
- [Matrix Cells in Distance Order](problems/src/array/MatrixCellsinDistanceOrder.java) (Easy)
- [Maximum Sum of Two Non-Overlapping Subarrays](problems/src/array/MaximumSumofTwoNonOverlappingSubarrays.java) (Medium)
- [Longest Line of Consecutive One in Matrix](problems/src/array/LongestLineofConsecutiveOneinMatrix.java) (Medium)
- [Array Partition I](problems/src/array/ArrayPartitionI.java) (Easy)
- [Relative Sort Array](problems/src/array/RelativeSortArray.java) (Easy)
- [Meeting Scheduler](problems/src/array/MeetingScheduler.java) (Medium)
- [Minimum Swaps to Group All 1's Together](problems/src/array/MinimumSwapsToGroupAll1Together.java) (Medium)
- [Array Nesting](problems/src/array/ArrayNesting.java) (Medium)

#### [Backtracking](problems/src/backtracking)

- [Combinations](problems/src/backtracking/Combinations.java) (Medium)
- [Combinations Sum](problems/src/backtracking/CombinationSum.java) (Medium)
- [Combinations Sum II](problems/src/backtracking/CombinationSumII.java) (Medium)
- [Letter Phone Number](problems/src/backtracking/LetterPhoneNumber.java) (Medium)
- [Paliandrome Partitioning](problems/src/backtracking/PalindromePartitioning.java) (Medium)
- [Permutations](problems/src/backtracking/Permutations.java) (Medium)
- [Permutations II](problems/src/backtracking/PermutationsII.java) (Medium)
- [SubSets](problems/src/backtracking/Subsets.java) (Medium)
- [SubSet II](problems/src/backtracking/SubsetsII.java) (Medium)
- [Word Search](problems/src/backtracking/WordSearch.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Word Search II](problems/src/backtracking/WordSearchII.java) (Hard)
- [Generate Parentheses](problems/src/backtracking/GenerateParentheses.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Remove Invalid Parentheses](problems/src/backtracking/RemoveInvalidParentheses.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Regular Expression Matching](problems/src/backtracking/RegularExpressionMatching.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Expression Add Operators](problems/src/backtracking/ExpressionAddOperators.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Wildcard Matching](problems/src/backtracking/WildcardMatching.java) (Hard)
- [Letter Case Permutation](problems/src/backtracking/LetterCasePermutation.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Zuma Game](problems/src/backtracking/ZumaGame.java) (Hard)
- [Matchsticks to Square](problems/src/backtracking/MatchsticksToSquare.java) (Medium)

#### [Binary Search](problems/src/binary_search)

- [Minimum Sorted Rotated Array](problems/src/binary_search/MinSortedRotatedArray.java) (Medium)
- [Search in a Rotated Sorted Array](problems/src/binary_search/SearchRotatedSortedArray.java) (Medium)
- [Search for a Range](problems/src/binary_search/SearchForARange.java) (Medium)
- [Sqrt(x)](problems/src/binary_search/SqrtX.java) (Easy)
- [Search Insert Position](problems/src/binary_search/SearchInsertPosition.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Median of Two Sorted Arrays](problems/src/binary_search/MedianOfTwoSortedArrays.java) (Hard)
- [Pow(x, n)](problems/src/binary_search/PowXN.java) (Medium)
- [Find Peak Element](problems/src/binary_search/FindPeakElement.java) (Medium)
- [Target Sum](problems/src/binary_search/TargetSum.java) (Medium)
- [H-Index II](problems/src/binary_search/HIndexII.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Swim in Rising Water](problems/src/binary_search/SwimInRisingWater.java) (Hard)
- [Time Based Key-Value Store](problems/src/binary_search/TimeBasedKeyValuePair.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Window Subsequence](problems/src/binary_search/MinimumWindowSubsequence.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Koko Eating Bananas](problems/src/binary_search/KokoEatingBananas.java) (Hard)
- [Single Element in a Sorted Array](problems/src/binary_search/SingleElementInASortedArray.java) (Medium)

#### [Bit Manipulation](problems/src/bit_manipulation)

- [Gray Code](problems/src/bit_manipulation/GrayCode.java) (Medium)
- [Hamming Distance](problems/src/bit_manipulation/HammingDistance.java) (Easy)
- [Total Hamming Distance](problems/src/bit_manipulation/TotalHammingDistance.java) (Medium)
- [Divide Two Integers](problems/src/bit_manipulation/DivideTwoIntegers.java) (Medium)
- [Binary Number with Alternating Bits](problems/src/bit_manipulation/BinaryNumberWithAlternatingBits.java) (Easy)
- [Binary Watch](problems/src/bit_manipulation/BinaryWatch.java) (Easy)

#### [Breadth First Search](problems/src/breadth_first_search)

- [Binaray Tree Level Order Traversal](problems/src/breadth_first_search/BinarayTreeLevelOrderTraversal.java) (Medium)
- [Word Ladder](problems/src/breadth_first_search/WordLadder.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Word Ladder II](problems/src/breadth_first_search/WordLadderII.java) (Hard)
- [Walls and Gates](problems/src/breadth_first_search/WallsAndGates.java) (Medium)
- [Open the lock](problems/src/breadth_first_search/OpenTheLock.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cut Off Trees for Golf Event](problems/src/breadth_first_search/CutOffTreesForGolfEvent.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Race Car](problems/src/breadth_first_search/RaceCar.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Bus Routes](problems/src/breadth_first_search/BusRoutes.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Sliding Puzzle](problems/src/breadth_first_search/SlidingPuzzle.java) (Hard)
- [Matrix](problems/src/breadth_first_search/Matrix.java) (Medium)
- [Rotting Oranges](problems/src/breadth_first_search/RottingOranges.java) (Medium)

#### [Depth First Search](problems/src/depth_first_search)

- [Minesweeper](problems/src/depth_first_search/Minesweeper.java) (Medium)
- [Movie Recommend](problems/src/depth_first_search/MovieRecommend.java) (Medium)
- [Number Of Islands](problems/src/depth_first_search/NumberOfIslands.java) (Medium)
- [Course Schedule](problems/src/depth_first_search/CourseSchedule.java) (Medium)
- [Course Schedule II](problems/src/depth_first_search/CourseScheduleII.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Alien Dictionary](problems/src/depth_first_search/AlienDictionary.java) (Hard)
- [Graph Valid Tree](problems/src/depth_first_search/GraphValidTree.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Longest Consecutive Sequence](problems/src/depth_first_search/LongestConsecutiveSequence.java) (Hard)
- [Accounts Merge](problems/src/depth_first_search/AccountsMerge.java) (Medium)
- [CloneGraph](problems/src/depth_first_search/CloneGraph.java) (Medium)
- [Island Perimeter](problems/src/depth_first_search/IslandPerimeter.java) (Easy)
- [Number of Distinct Islands](problems/src/depth_first_search/NumberOfDistinctIslands.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Distinct Islands II](problems/src/depth_first_search/NumberOfDistinctIslandsII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Rectangle Enclosing Black Pixels](problems/src/depth_first_search/SmallestRectangleEnclosingBlackPixels.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Bricks Falling When Hit](problems/src/depth_first_search/BricksFallingWhenHit.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Robot Room Cleaner](problems/src/depth_first_search/RobotRoomCleaner.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cracking the Safe](problems/src/depth_first_search/CrackingTheSafe.java) (Hard)
- [All Paths From Source to Target](problems/src/depth_first_search/AllPathsFromSourceToTarget.java) (Medium)
- [Max Area of Island](problems/src/depth_first_search/MaxAreaOfIsland.java) (Medium)
- [Satisfiability of Equality Equations](problems/src/depth_first_search/SatisfiabilityOfEquations.java) (Medium)
- [Number of Enclaves](problems/src/depth_first_search/NumberOfEnclaves.java) (Medium)
- [As Far from Land as Possible](problems/src/depth_first_search/AsFarfromLandAsPossible.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimize Malware Spread](problems/src/depth_first_search/MinimizeMalwareSpread.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Parallel Courses](problems/src/depth_first_search/ParallelCourses.java) (Hard)
- [Connecting Cities With Minimum Cost](problems/src/depth_first_search/ConnectingCitiesWithMinimumCost.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Critical Connections in a Network](problems/src/depth_first_search/CriticalConnection.java) (Hard)

#### [Design](problems/src/design)

- [Copy List With Random Pointer](problems/src/design/CopyListWithRandomPointer.java) (Medium)
- [Encode and Decode Tiny URL](problems/src/design/EncodeAndDecodeTinyURL.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [LFU Cache](problems/src/design/LFUCache.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [LRU Cache](problems/src/design/LRUCache.java) (Hard)
- [Insert Delete Get Random](problems/src/design/RandomizedSet.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Serialize Deserialize Binary Tree](problems/src/design/SerializeDeserializeBinaryTree.java) (Hard)
- [Design Twitter](problems/src/design/Twitter.java) (Medium)
- [Tic-Tac-Toe](problems/src/design/TicTacToe.java) (Medium)
- [Implement Trie (Prefix Tree)](problems/src/design/Trie.java) (Medium)
- [Binary Search Tree Iterator](problems/src/design/BSTIterator.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Design Search Autocomplete System](problems/src/design/AutocompleteSystem.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Design Excel Sum Formula](problems/src/design/Excel.java) (Hard)
- [Flatten Nested List Iterator](problems/src/design/NestedIterator.java) (Medium)
- [Add and Search Word - Data structure design](problems/src/design/WordDictionary.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Prefix and Suffix Search](problems/src/design/WordFilter.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Insert Delete GetRandom O(1) - Duplicates allowed](problems/src/design/RandomizedCollection.java) (Hard)

#### [Divide and Conquer](problems/src/divide_and_conquer)

- [Kth Largest Element In a Array](problems/src/divide_and_conquer/KthLargestElementInAnArray.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reverse Pairs](problems/src/divide_and_conquer/ReversePairs.java) (Hard)
- [Search in a 2D Matrix](problems/src/divide_and_conquer/SearchA2DMatrix.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [24 Game](problems/src/divide_and_conquer/TwentyFourGame.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reverse Pairs II](problems/src/divide_and_conquer/ReversePairsII.java) (Hard)
- [My Calendar II](problems/src/divide_and_conquer/MyCalendarII.java) (Medium)

#### [Dynamic Programming](problems/src/dynamic_programming)

- [Best Time To Buy and Sell Stocks](problems/src/dynamic_programming/BestTimeToBuyAndSellStocks.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Best Time to Buy and Sell Stock III](problems/src/dynamic_programming/BestTimeToBuyAndSellStockIII.java) (Hard)
- [Best Time to Buy and Sell Stock with Transaction Fee](problems/src/dynamic_programming/BestTimeToBuyAndSellStocksWithFee.java) (Medium)
- [Climbing Stairs](problems/src/dynamic_programming/ClimbingStairs.java) (Easy)
- [Coin Change](problems/src/dynamic_programming/CoinChange.java) (Medium)
- [Coin Change 2](problems/src/dynamic_programming/CoinChange2.java) (Medium)
- [Decode Ways](problems/src/dynamic_programming/DecodeWays.java) (Medium)
- [House Robber](problems/src/dynamic_programming/HouseRobber.java) (Easy)
- [House Robber II](problems/src/dynamic_programming/HouseRobberII.java) (Medium)
- [Longest Increasing Subsequence](problems/src/dynamic_programming/LongestIncreasingSubsequence.java) (Medium)
- [Longest Paliandromic Substring](problems/src/dynamic_programming/LongestPaliandromicSubstring.java) (Medium)
- [Longest Palindromic Subsequence](problems/src/dynamic_programming/LongestPalindromicSubsequence.java) (Medium)
- [Maximum Product Subarray](problems/src/dynamic_programming/MaximumProductSubarray.java) (Medium)
- [Min Cost Climbing Stairs](problems/src/dynamic_programming/MinCostClimbingStairs.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Partitioning II](problems/src/dynamic_programming/PalindromePartitioningII.java) (Hard)
- [UniqueBinary Search Trees](problems/src/dynamic_programming/UniqueBinarySearchTrees.java) (Medium)
- [Unique Binary Search Trees II](problems/src/dynamic_programming/UniqueBinarySearchTreesII.java) (Medium)
- [WordBreak](problems/src/dynamic_programming/WordBreak.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [WordBreak II](problems/src/dynamic_programming/WordBreakII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Concatenated Words](problems/src/dynamic_programming/ConcatenatedWords.java) (Hard)
- [Can I Win](problems/src/dynamic_programming/CanIWin.java) (Medium)
- [Maximum Subarray](problems/src/dynamic_programming/MaximumSubarray.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Dungeon Game](problems/src/dynamic_programming/DungeonGame.java) (Hard)
- [2 Keys Keyboard](problems/src/dynamic_programming/TwoKeysKeyboard.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximum Sum of 3 Non-Overlapping Subarrays](problems/src/dynamic_programming/MaxSum3SubArray.java) (Hard)
- [Maximal Square](problems/src/dynamic_programming/MaximalSquare.java) (Medium)
- [Continuous Subarray Sum](problems/src/dynamic_programming/ContinuousSubarraySum.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Decode Ways II](problems/src/dynamic_programming/DecodeWaysII.java) (Hard)
- [Palindromic Substrings](problems/src/dynamic_programming/PalindromicSubstrings.java) (Medium)
- [Number of Longest Increasing Subsequence](problems/src/dynamic_programming/NumberOfLIS.java) (Medium)
- [Combination Sum IV](problems/src/dynamic_programming/CombinationSumIV.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Paint House II](problems/src/dynamic_programming/PaintHouseII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Split Array Largest Sum](problems/src/dynamic_programming/SplitArrayLargestSum.java) (Hard)
- [Number Of Corner Rectangles](problems/src/dynamic_programming/CornerRectangles.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Burst Balloons](problems/src/dynamic_programming/BurstBalloons.java) (Hard)
- [Largest Plus Sign](problems/src/dynamic_programming/LargestPlusSign.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Pairs](problems/src/dynamic_programming/PalindromePairs.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cherry Pickup](problems/src/dynamic_programming/CherryPickup.java) (Hard)
- [Knight Probability in Chessboard](problems/src/dynamic_programming/KnightProbabilityInChessboard.java) (Medium)
- [Largest Sum of Averages](problems/src/dynamic_programming/LargestSumOfAverages.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Number of Refueling Stops](problems/src/dynamic_programming/MinimumNumberOfRefuelingStops.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cat and Mouse](problems/src/dynamic_programming/CatAndMouse.java) (Hard)
- [Stone Game](problems/src/dynamic_programming/StoneGame.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Odd Even Jump](problems/src/dynamic_programming/OddEvenJump.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Profitable Schemes](problems/src/dynamic_programming/ProfitableSchemes.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximum Vacation Days](problems/src/dynamic_programming/MaximumVacationDays.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Russian Doll Envelopes](problems/src/dynamic_programming/RussianDollEnvelopes.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Student Attendance Record II](problems/src/dynamic_programming/StudentAttendanceRecordII.java) (Hard)
- [Out of Boundary Paths](problems/src/dynamic_programming/OutOfBoundaryPaths.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Remove Boxes](problems/src/dynamic_programming/RemoveBoxes.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Stickers to Spell Word](problems/src/dynamic_programming/StickersToSpellWord.java) (Hard)
- [Ones and Zeroes](problems/src/dynamic_programming/OnesAndZeroes.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Encode String with Shortest Length](problems/src/dynamic_programming/EncodeStringWithShortestLength.java) (Hard)
- [Length of Longest Fibonacci Subsequence](problems/src/dynamic_programming/LengthofLongestFibonacciSubsequence.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Make Array Strictly Increasing](problems/src/dynamic_programming/MakeArrayStrictlyIncreasing.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Number of Taps to Open to Water a Garden](problems/src/dynamic_programming/MinimumNumberOfTaps.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Delete Columns to Make Sorted III](problems/src/dynamic_programming/DeleteColumnsToMakeSortedIII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Handshakes That Don't Cross](problems/src/dynamic_programming/HandshakesThatDontCross.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Difficulty of a Job Schedule](problems/src/dynamic_programming/MinimumDifficultyOfAJobSchedule.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Jump Game V](problems/src/dynamic_programming/JumpGameV.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Freedom Trail](problems/src/dynamic_programming/FreedomTrail.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Strange Printer](problems/src/dynamic_programming/StrangePrinter.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Cost to Merge Stones](problems/src/dynamic_programming/MinimumCostToMergeStones.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Interleaving String](problems/src/dynamic_programming/InterleavingString.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Count Vowels Permutation](problems/src/dynamic_programming/CountVowelsPermutation.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Non-negative Integers without Consecutive Ones](problems/src/dynamic_programming/NonNegativeIntegersWithoutConsecutiveOnes.java) (Hard)
- [Bomb Enemy](problems/src/dynamic_programming/BombEnemy.java) (Medium)
- [Number of Dice Rolls With Target Sum](problems/src/dynamic_programming/NumberOfDiceRollsWithTargetSum.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Distinct Subsequences](problems/src/dynamic_programming/DistinctSubsequences.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Distinct Subsequences II](problems/src/dynamic_programming/DistinctSubsequencesII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Distance to Type a Word Using Two Fingers](problems/src/dynamic_programming/MinimumDistanceToTypeAWordUsingTwoFingers.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Valid Palindrome III](problems/src/dynamic_programming/ValidPalindromeIII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Partitioning III](problems/src/dynamic_programming/PalindromePartitioningIII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Tiling a Rectangle with the Fewest Squares](problems/src/dynamic_programming/TilingARectangle.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Longest Chunked Palindrome Decomposition](problems/src/dynamic_programming/LongestChunkedPalindromeDecomposition.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Stone Game III](problems/src/dynamic_programming/StoneGameIII.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Ways to Stay in the Same Place After Some Steps](problems/src/dynamic_programming/NumberOfWaysToStayInTheSamePlace.java) (Hard)
- [Toss Strange Coins](problems/src/dynamic_programming/TossStrangeCoins.java) (Medium)
- [Knight Dialer](problems/src/dynamic_programming/KnightDialer.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Removal](problems/src/dynamic_programming/PalindromeRemoval.java) (Hard)

#### [Greedy](problems/src/greedy)

- [Jump Game](problems/src/greedy/JumpGame.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Jump Game II](problems/src/greedy/JumpGameII.java) (Hard)
- [Course Schedule III](problems/src/greedy/CourseScheduleIII.java) (Medium)
- [GasStation](problems/src/greedy/GasStation.java) (Medium)
- [Non-Overlapping Intervals](problems/src/greedy/NonOverlappingIntervals.java) (Medium)
- [Minimum Number of Arrows to Burst Balloons](problems/src/greedy/BurstBalloons.java) (Medium)
- [Queue Reconstruction By Height](problems/src/greedy/QueueReconstructionByHeight.java) (Medium)
- [Task Scheduler](problems/src/greedy/TaskScheduler.java) (Medium)
- [Maximum Length of Pair Chain](problems/src/greedy/MaximumLengthOfPairChain.java) (Medium)
- [Lemonade Change](problems/src/greedy/LemonadeChange.java) (Easy)
- [Score After Flipping Matrix](problems/src/greedy/ScoreAfterFlippingMatrix.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [IPO](problems/src/greedy/IPO.java) (Hard)
- [String Without AAA or BBB](problems/src/greedy/StringWithout3A3B.java) (Medium)
- [Boats to Save People](problems/src/greedy/BoatsToSavePeople.java) (Medium)
- [Broken Calculator](problems/src/greedy/BrokenCalculator.java) (Medium)
- [Two City Scheduling](problems/src/greedy/TwoCityScheduling.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Time to Build Blocks](problems/src/greedy/MinimumTimeToBuildBlocks.java) (Hard)

#### [Hashing](problems/src/hashing)

- [Anagrams](problems/src/hashing/Anagrams.java) (Medium)
- [Group Anagrams](problems/src/hashing/GroupAnagrams.java) (Medium)
- [Kdiff Pairs In a Array](problems/src/hashing/KdiffPairsInanArray.java) (Easy)
- [Sort Character by Frequency](problems/src/hashing/SortCharByFrequency.java) (Medium)
- [Two Sum](problems/src/hashing/TwoSum.java) (Easy)
- [Valid Anagram](problems/src/hashing/ValidAnagram.java) (Easy)
- [Maximum Size Subarray Sum Equals k](problems/src/hashing/MaximumSizeSubarraySumEqualsk.java) (Medium)
- [Contiguous Array](problems/src/hashing/ContiguousArray.java) (Medium)
- [Brick Wall](problems/src/hashing/BrickWall.java) (Medium)
- [Partition Labels](problems/src/hashing/PartitionLabels.java) (Medium)
- [Custom Sort String](problems/src/hashing/CustomSortString.java) (Medium)
- [Short Encoding of Words](problems/src/hashing/ShortEncodingOfWords.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Substring with Concatenation of All Words](problems/src/hashing/SubstringConcatenationOfWords.java) (Hard)
- [Distribute Candies](problems/src/hashing/DistributeCandies.java) (Easy)
- [Groups of Special-Equivalent Strings](problems/src/hashing/GroupsOfSpecialEquivalentStrings.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Atoms](problems/src/hashing/NumberOfAtoms.java) (Hard)
- [Analyze User Website Visit Pattern](problems/src/hashing/AnalyzeUserWebsiteVisitPattern.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [String Transforms Into Another String](problems/src/hashing/StringTransformsIntoAnotherString.java) (Hard)

#### [Heap](problems/src/heap)

- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Sliding Window Maximum](problems/src/heap/SlidingWindowMaximum.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [The Skyline Problem](problems/src/heap/TheSkylineProblem.java) (Hard)
- [Meeting Rooms II](problems/src/heap/MeetingRoomsII.java) (Medium)
- [Top K Frequent Words](problems/src/heap/TopKFrequentWords.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Candy](problems/src/heap/Candy.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Rotation with Highest Score](problems/src/heap/SmallestRotationWithHighestScore.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximum Frequency Stack](problems/src/heap/FreqStack.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reachable Nodes In Subdivided Graph](problems/src/heap/ReachableNodesInSubdividedGraph.java) (Hard)
- [K Closest Points to Origin](problems/src/heap/KClosestPointsToOrigin.java) (Medium)
- [Distant Barcodes](problems/src/heap/DistantBarcodes.java) (Medium)

#### [Linked List](problems/src/linked_list)

- [Intersection of two Linked-Lists](problems/src/linked_list/IntersectionOfTwoLists.java) (Easy)
- [Linked List Cycle](problems/src/linked_list/LinkedListCycle.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Merge K Sorted Lists](problems/src/linked_list/MergeKSortedLists.java) (Hard)
- [Merge Two Sorted List](problems/src/linked_list/MergeTwoSortedList.java) (Easy)
- [Paliandrome List](problems/src/linked_list/PaliandromeList.java) (Easy)
- [Reverse Linked List](problems/src/linked_list/ReverseLinkedList.java) (Easy)
- [Delete Node in a Linked List](problems/src/linked_list/DeleteNode.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reverse Nodes in k-Group](problems/src/linked_list/ReverseNodesKGroup.java) (Hard)
- [Swap Nodes in Pairs](problems/src/linked_list/SwapNodesInPairs.java) (Medium)
- [Middle of Linked List](problems/src/linked_list/MiddleOfLinkedList.java) (Easy)
- [Split Linked List in Parts](problems/src/linked_list/SplitLinkedListInParts.java) (Medium)
- [Next Greater Node In Linked List](problems/src/linked_list/NextGreaterNodeInLinkedList.java) (Medium)

#### [Math](problems/src/math)

- [Add Two Numbers](problems/src/math/AddTwoNumbers.java) (Medium)
- [Count Primes](problems/src/math/CountPrimes.java) (Easy)
- [Rotate Function](problems/src/math/RotateFunction.java) (Medium)
- [Water and Jug Problem](problems/src/math/WaterAndJugProblem.java) (Medium)
- [Add Digits](problems/src/math/AddDigits.java) (Easy)
- [Excel Sheet Column Title](problems/src/math/ExcelSheetColumnTitle.java) (Easy)
- [Roman to Integer](problems/src/math/RomanToInteger.java) (Easy)
- [Bulb Switcher II](problems/src/math/BulbSwitcherII.java) (Medium)
- [Global and Local Inversions](problems/src/math/GlobalAndLocalInversions.java) (Medium)
- [Solve the Equation](problems/src/math/SolveTheEquation.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Couples Holding Hands](problems/src/math/CouplesHoldingHands.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reaching Points](problems/src/math/ReachingPoints.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Nth Magical Number](problems/src/math/NthMagicalNumber.java) (Hard)
- [Squirrel Simulation](problems/src/math/SquirrelSimulation.java) (Medium)
- [Projection Area of 3D Shapes](problems/src/math/ProjectionAreaOf3DShapes.java) (Easy)
- [Decoded String at Index](problems/src/math/DecodedStringAtIndex.java) (Medium)
- [Base 7](problems/src/math/Base7.java) (Easy)
- [Smallest Range I](problems/src/math/SmallestRangeI.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Largest Component Size by Common Factor](problems/src/math/LargestComponentSizebyCommonFactor.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Super Washing Machines](problems/src/math/SuperWashingMachines.java) (Hard)
- [Rectangle Overlap](problems/src/math/RectangleOverlap.java) (Easy)
- [Nth Digit](problems/src/math/NthDigit.java) (Easy)

#### [Reservoir Sampling](problems/src/reservoir_sampling)

- [Random Pick Index](problems/src/reservoir_sampling/RandomPickIndex.java) (Medium)

#### [Stack](problems/src/stack)

- [Min Stack](problems/src/stack/MinStack.java) (Easy)
- [Valid Parentheses](problems/src/stack/ValidParentheses.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Largest Rectangle In Histogram](problems/src/stack/LargestRectangleInHistogram.java) (Hard)
- [Implement Queue using Stacks](problems/src/stack/MyQueue.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximal Rectangle](problems/src/stack/MaximalRectangle.java) (Hard)
- [Exclusive Time of Functions](problems/src/stack/ExclusiveTimeOfFunctions.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Basic Calculator](problems/src/stack/BasicCalculator.java) (Hard)
- [Decode String](problems/src/stack/DecodeString.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Longest Valid Parentheses](problems/src/stack/LongestValidParentheses.java) (Hard)

#### [String](problems/src/string)

- [First Unique Character In a String](problems/src/string/FirstUniqueCharacterInAString.java) (Easy)
- [Repeated Substring Pattern](problems/src/string/RepeatedSubstringPattern.java) (Easy)
- [Reverse Words In a String](problems/src/string/ReverseWordsInAString.java) (Medium)
- [ReverseWords II](problems/src/string/ReverseWordsII.java) (Medium)
- [String to Integer](problems/src/string/StringToInteger.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Text Justification](problems/src/string/TextJustification.java) (Hard)
- [ZigZag Conversion](problems/src/string/ZigZagConversion.java) (Medium)
- [Implement StrStr](problems/src/string/ImplementStrStr.java) (Easy)
- [Excel Sheet Column Number](problems/src/string/ExcelSheetColumnNumber.java) (Easy)
- [Compare Version Numbers](problems/src/string/CompareVersionNumbers.java) (Easy)
- [Valid Palindrome](problems/src/string/ValidPalindrome.java) (Easy)
- [Simplify Path](problems/src/string/SimplifyPath.java) (Medium)
- [Permutation in String](problems/src/string/PermutationInString.java) (Medium)
- [Add Binary](problems/src/string/AddBinary.java) (Easy)
- [Valid Palindrome II](problems/src/string/ValidPalindromeII.java) (Easy)
- [One Edit Distance](problems/src/string/OneEditDistance.java) (Medium)
- [Count and Say](problems/src/string/CountAndSay.java) (Easy)
- [Multiply Strings](problems/src/string/MultiplyStrings.java) (Medium)
- [Longest Word in Dictionary through Deleting](problems/src/string/LongestWordInDictonary.java) (Medium)
- [Isomorphic Strings](problems/src/string/IsomorphicStrings.java) (Easy)
- [String Compression](problems/src/string/StringCompression.java) (Easy)
- [Longest Common Prefix](problems/src/string/LongestCommonPrefix.java) (Easy)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Find the Closest Palindrome](problems/src/string/FindTheClosestPalindrome.java) (Hard)
- [Monotone Increasing Digits](problems/src/string/MonotoneIncreasingDigits.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Shortest Palindrome](problems/src/string/ShortestPalindrome.java) (Hard)
- [Valid Word Abbreviation](problems/src/string/ValidWordAbbreviation.java) (Easy)
- [Longest Palindrome](problems/src/string/LongestPalindrome.java) (Easy)
- [Replace Words](problems/src/string/ReplaceWords.java) (Medium)
- [Rotate String](problems/src/string/RotateString.java) (Easy)
- [Keyboard Row](problems/src/string/KeyboardRow.java) (Easy)
- [Student Attendance Record I](problems/src/string/StudentAttendanceRecordI.java) (Easy)
- [Split Concatenated Strings](problems/src/string/SplitConcatenatedStrings.java) (Medium)
- [Valid Word Square](problems/src/string/ValidWordSquare.java) (Easy)
- [Reconstruct Original Digits from English](problems/src/string/ReconstructOriginalDigitsFromEnglish.java) (Medium)
- [Push Dominoes](problems/src/string/PushDominoes.java) (Medium)
- [Validate IP Address](problems/src/string/ValidateIPAddress.java) (Medium)
- [Reverse String II](problems/src/string/ReverseStringII.java) (Easy)
- [Find Words That Can Be Formed by Characters](problems/src/string/FindWordsThatCanBeFormedbyCharacters.java) (Easy)
- [Minimum Add to Make Parentheses Valid](problems/src/string/MinimumAddtoMakeParenthesesValid.java) (Medium)

#### [Tree](problems/src/tree)

- [Binaray Tree Right Side View](problems/src/tree/BinarayTreeRightSideView.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Binary Tree Maximum Path Sum](problems/src/tree/BinaryTreeMaximumPathSum.java) (Hard)
- [Boundary of Binary Tree](problems/src/tree/BoundaryOfBinaryTree.java) (Medium)
- [Convert sorted array to BST](problems/src/tree/ConvertSortedArrayToBST.java) (Medium)
- [Lowest Common Ancestor of a Binary Tree](problems/src/tree/LCA.java) (Medium)
- [Lowest Common Ancestor of a BST](problems/src/tree/LowestCommonAncestorBST.java) (Easy)
- [Most Frequent Subtree Sum](problems/src/tree/MostFrequentSubtreeSum.java) (Medium)
- [Path Sum III](problems/src/tree/PathSumIII.java) (Easy)
- [Convert Postorder and Inorder traversal to Binary Tree](problems/src/tree/PostorderToBT.java) (Medium)
- [Convert Preorder and Inorder traversal to Binary Tree](problems/src/tree/PreorderToBT.java) (Medium)
- [Sorted Array to BST](problems/src/tree/SortedArrayToBST.java) (Medium)
- [Valid Binary Search Tree](problems/src/tree/ValidBinarySearchTree.java) (Medium)
- [Largest BST Subtree](problems/src/tree/LargestBSTSubtree.java) (Medium)
- [Closest Binary Search Tree Value](problems/src/tree/ClosestBinarySearchTreeValue.java) (Easy)
- [Inorder Successor in BST](problems/src/tree/InorderSuccessorInBST.java) (Medium)
- [Construct String From Binary Tree](problems/src/tree/ConstructStringFromBinaryTree.java) (Easy)
- [Flatten Binary Tree to Linked List](problems/src/tree/FlattenBinaryTree.java) (Medium)
- [Populating Next Right Pointers in Each Node](problems/src/tree/NextRightPointer.java) (Medium)
- [Populating Next Right Pointers in Each Node II](problems/src/tree/NextRightPointerII.java) (Medium)
- [Subtree of Another Tree](problems/src/tree/SubtreeOfAnotherTree.java) (Easy)
- [Binary Tree Zigzag Level Order Traversal](problems/src/tree/ZigZagTraversal.java) (Medium)
- [Binary Tree Inorder Traversal](problems/src/tree/BinaryTreeInorderTraversal.java) (Medium)
- [Symmetric Tree](problems/src/tree/SymmetricTree.java) (Easy)
- [Maximum Binary Tree](problems/src/tree/MaximumBinaryTree.java) (Medium)
- [Find Bottom Left Tree Value](problems/src/tree/FindBottomLeftTreeValue.java) (Medium)
- [Diameter of Binary Tree](problems/src/tree/DiameterOfBinaryTree.java) (Easy)
- [Binary Tree Paths](problems/src/tree/BinaryTreePaths.java) (Easy)
- [Sum of Left Leaves](problems/src/tree/SumofLeftLeaves.java) (Easy)
- [Two Sum IV - Input is a BST](problems/src/tree/TwoSumIV.java) (Easy)
- [Average of Levels in Binary Tree](problems/src/tree/AverageOfLevelsInBinaryTree.java) (Easy)
- [Convert Binary Search Tree to Sorted Doubly Linked List](problems/src/tree/BSTtoDoublyLinkedList.java) (Easy)
- [Same Tree](problems/src/tree/SameTree.java) (Easy)
- [Binary Tree Longest Consecutive SequencefindMinDifference II](problems/src/tree/BinaryTreeLongestConsecutiveSequenceII.java) (Medium)
- [Minimum Absolute Difference in BST](problems/src/tree/MinimumAbsoluteDifferenceInBST.java) (Medium)
- [Equal Tree Partition](problems/src/tree/EqualTreePartition.java) (Medium)
- [Split BST](problems/src/tree/SplitBST.java) (Medium)
- [Closest Leaf in a Binary Tree](problems/src/tree/ClosestLeafInABinaryTree.java) (Medium)
- [Maximum Width of Binary Tree](problems/src/tree/MaximumWidthOfBinaryTree.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Recover Binary Search Tree](problems/src/tree/RecoverBinarySearchTree.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Binary Tree Postorder Traversal](problems/src/tree/BinaryTreePostorderTraversal.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Serialize and Deserialize N-ary Tree](problems/src/tree/SerializeAndDeserializeNAryTree.java) (Hard)
- [Convert BST to Greater Tree](problems/src/tree/ConvertBSTToGreaterTree.java) (Easy)
- [All Nodes Distance K in Binary Tree](problems/src/tree/AllNodesDistanceKInBinaryTree.java) (Medium)
- [All Possible Full Binary Trees](problems/src/tree/AllPossibleFullBinaryTrees.java) (Medium)
- [Flip Equivalent Binary Trees](problems/src/tree/FlipEquivalentBinaryTrees.java) (Medium)
- [Construct Binary Tree from String](problems/src/tree/ConstructBinaryTreefromString.java) (Medium)
- [Find Largest Value in Each Tree Row](problems/src/tree/FindLargestValueInEachTreeRow.java) (Medium)
- [Find Bottom Left Tree Value](problems/src/tree/FindBottomLeftTreeValue.java) (Medium)
- [Maximum Level Sum of a Binary Tree](problems/src/tree/MaximumLevelSumofABinaryTree.java) (Medium)
- [Leaf-Similar Trees](problems/src/tree/LeafSimilarTrees.java) (Easy)
- [Binary Tree Tilt](problems/src/tree/BinaryTreeTilt.java) (Easy)

#### [Two Pointers](problems/src/two_pointers)

- [Four Sum](problems/src/two_pointers/FourSum.java) (Medium)
- [Longest Substring Witout Repeats](problems/src/two_pointers/LongestSubstringWitoutRepeats.java) (Medium)
- [Three Sum](problems/src/two_pointers/ThreeSum.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Trapping Rain Water](problems/src/two_pointers/TrappingRainWater.java) (Hard)
- [3Sum Closest](problems/src/two_pointers/ThreeSumClosest.java) (Medium)
- [Move Zeroes](problems/src/two_pointers/MoveZeroes.java) (Easy)
- [Remove Duplicates](problems/src/two_pointers/RemoveDuplicates.java) (Easy)
- [Remove Duplicates II](problems/src/two_pointers/RemoveDuplicatesII.java) (Medium)
- [Minimum Size Subarray Sum](problems/src/two_pointers/MinimumSizeSubarraySum.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Window Substring](problems/src/two_pointers/MinimumWindowSubstring.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Range](problems/src/two_pointers/SmallestRange.java) (Hard)
- [Subarray Product Less Than K](problems/src/two_pointers/SubarrayProductLessThanK.java) (Medium)
- [Number of Matching Subsequences](problems/src/two_pointers/NumberOfMatchingSubsequences.java) (Medium)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Subarrays with K Different Integers](problems/src/two_pointers/SubarraysWithKDifferentIntegers.java) (Hard)
- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Last Substring in Lexicographical Order](problems/src/two_pointers/LastSubstringInLexicographicalOrder.java) (Hard)