{"id":13682460,"url":"https://github.com/gouthampradhan/leetcode","last_synced_at":"2025-05-13T23:08:45.032Z","repository":{"id":39706554,"uuid":"84429525","full_name":"gouthampradhan/leetcode","owner":"gouthampradhan","description":"Leetcode solutions","archived":false,"fork":false,"pushed_at":"2024-12-19T12:17:15.000Z","size":978,"stargazers_count":3298,"open_issues_count":9,"forks_count":825,"subscribers_count":138,"default_branch":"master","last_synced_at":"2025-04-12T20:43:23.630Z","etag":null,"topics":["algorithms","coding-interviews","competitive-programming","java","leetcode","leetcode-java","leetcode-solutions"],"latest_commit_sha":null,"homepage":"https://leetcode.com/problemset/algorithms/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gouthampradhan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-09T10:30:30.000Z","updated_at":"2025-04-12T04:54:13.000Z","dependencies_parsed_at":"2025-01-03T23:15:31.014Z","dependency_job_id":null,"html_url":"https://github.com/gouthampradhan/leetcode","commit_stats":{"total_commits":299,"total_committers":4,"mean_commits":74.75,"dds":0.04347826086956519,"last_synced_commit":"d10c6bca478a38ac71ed32ee73e62fa5bafd64db"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gouthampradhan%2Fleetcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gouthampradhan%2Fleetcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gouthampradhan%2Fleetcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gouthampradhan%2Fleetcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gouthampradhan","download_url":"https://codeload.github.com/gouthampradhan/leetcode/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254041791,"owners_count":22004773,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["algorithms","coding-interviews","competitive-programming","java","leetcode","leetcode-java","leetcode-solutions"],"created_at":"2024-08-02T13:01:46.358Z","updated_at":"2025-05-13T23:08:40.018Z","avatar_url":"https://github.com/gouthampradhan.png","language":"Java","funding_links":[],"categories":["Java","To Sort","Miscellaneous"],"sub_categories":[],"readme":"# Leetcode solutions in Java\n\nMy accepted leetcode solutions to some of the common interview problems. \nAlso, some solutions have youtube video link. \n\n[Youtube channel](https://www.youtube.com/@codernaut)\n\n\n#### [Array](src/main/java/array)\n\n- [Pascals Traiangle II](src/main/java/array/PascalsTriangle.java) (Easy)\n- [Product Of Array Except Self](src/main/java/array/ProductOfArrayExceptSelf.java) (Medium)\n- [Rotate Matrix](src/main/java/array/RotateMatrix.java) (Medium)\n- [Set Matrix Zeroes](src/main/java/array/SetMatrixZeroes.java) (Medium)\n- [Third Maximum Number](src/main/java/array/ThirdMaximumNumber.java) (Easy)\n- [Two Sum](src/main/java/array/TwoSum.java) (Easy)\n- [TwoSum II](src/main/java/array/TwoSumII.java) (Easy)\n- [Can Place Flowers](src/main/java/array/CanPlaceFlowers.java) (Easy)\n- [Merge Intervals](src/main/java/array/MergeIntervals.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [First Missing Positive](src/main/java/array/FirstMissingPositive.java) (Hard)\n- [Fruit Into Baskets](src/main/java/array/FruitIntoBaskets.java) (Medium)\n- [MaxProduct Of Three Numbers](src/main/java/array/MaxProductOfThreeNumbers.java) (Easy)\n- [Missing Number](src/main/java/array/MissingNumber.java) (Easy)\n- [Merge Sorted Array](src/main/java/array/MergeSortedArray.java) (Easy)\n- [Rotate Array](src/main/java/array/RotateArray.java) (Easy)\n- [Sort Colors](src/main/java/array/SortColors.java) (Medium)\n- [Battleships in a Board](src/main/java/array/BattleshipsInABoard.java) (Medium)\n- [Find the Celebrity](src/main/java/array/FindTheCelebrity.java) (Medium)\n- [Meeting Rooms](src/main/java/array/MeetingRooms.java) (Easy)\n- [Longest Continuous Increasing Subsequence](src/main/java/array/LongestIncreasingSubsequence.java) (Easy)\n- [Sparse Matrix Multiplication](src/main/java/array/SparseMatrixMultiplication.java) (Medium)\n- [Read N Characters Given Read4](src/main/java/array/ReadNCharacters.java) (Easy)\n- [Maximum Swap](src/main/java/array/MaximumSwap.java) (Medium)\n- [H-Index](src/main/java/array/HIndex.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Insert Interval](src/main/java/array/InsertInterval.java) (Hard)\n- [Increasing Triplet Subsequence](src/main/java/array/IncreasingTripletSubsequence.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [K Empty Slots](src/main/java/array/KEmptySlots.java) (Hard)\n- [Subarray Sum Equals K](src/main/java/array/SubarraySumEqualsK.java) (Medium)\n- [Pour Water](src/main/java/array/PourWater.java) (Medium)\n- [Relative Ranks](src/main/java/array/RelativeRanks.java) (Easy)\n- [Next Greater Element I](src/main/java/array/NextGreaterElementI.java) (Easy)\n- [Largest Number At Least Twice of Others](src/main/java/array/LargestNumberAtLeastTwice.java) (Easy)\n- [Minimum Moves to Equal Array Elements II](src/main/java/array/MinimumMovesToEqualArray.java) (Median)\n- [Image Smoother](src/main/java/array/ImageSmoother.java) (Easy)\n- [Minimum Index Sum of Two Lists](src/main/java/array/MinimumIndexSumOfTwoLists.java) (Easy)\n- [Card Flipping Game](src/main/java/array/CardFilipGame.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Employee Free Time](src/main/java/array/EmployeeFreeTime.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Best Meeting Point](src/main/java/array/BestMeetingPoint.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [My Calendar III](src/main/java/array/MyCalendarThree.java) (Hard)\n- [Champagne Tower](src/main/java/array/ChampagneTower.java) (Medium)\n- [Valid Tic-Tac-Toe State](src/main/java/array/ValidTicTacToeState.java) (Medium)\n- [Number of Subarrays with Bounded Maximum](src/main/java/array/SubArraysWithBoundedMaximum.java) (Medium)\n- [Surface Area of 3D Shapes](src/main/java/array/SurfaceAreaOfThreeDShapes.java) (Easy)\n- [Max Consecutive Ones](src/main/java/array/MaxConsecutiveOnes.java) (Easy)\n- [Max Consecutive Ones II](src/main/java/array/MaxConsecutiveOnesII.java) (Medium)\n- [Add to Array-Form of Integer](src/main/java/array/AddToArrayFormOfInteger.java) (Easy)\n- [Find Pivot Index](src/main/java/array/FindPivotIndex.java) (Easy)\n- [Largest Time for Given Digits](src/main/java/array/LargestTimeForGivenDigits.java) (Easy)\n- [Minimum Time Difference](src/main/java/array/MinimumTimeDifference.java) (Medium)\n- [Reveal Cards In Increasing Order](src/main/java/array/RevealCardsInIncreasingOrder.java) (Medium)\n- [Sort Array By Parity II](src/main/java/array/SortArrayByParityII.java) (Easy)\n- [Matrix Cells in Distance Order](src/main/java/array/MatrixCellsinDistanceOrder.java) (Easy)\n- [Maximum Sum of Two Non-Overlapping Subarrays](src/main/java/array/MaximumSumofTwoNonOverlappingSubarrays.java) (Medium)\n- [Longest Line of Consecutive One in Matrix](src/main/java/array/LongestLineofConsecutiveOneinMatrix.java) (Medium)\n- [Array Partition I](src/main/java/array/ArrayPartitionI.java) (Easy)\n- [Relative Sort Array](src/main/java/array/RelativeSortArray.java) (Easy)\n- [Meeting Scheduler](src/main/java/array/MeetingScheduler.java) (Medium)\n- [Minimum Swaps to Group All 1's Together](src/main/java/array/MinimumSwapsToGroupAll1Together.java) (Medium)\n- [Array Nesting](src/main/java/array/ArrayNesting.java) (Medium)\n\n#### [Backtracking](src/main/java/backtracking)\n\n- [Combinations](src/main/java/backtracking/Combinations.java) (Medium)\n- [Combinations Sum](src/main/java/backtracking/CombinationSum.java) (Medium)\n- [Combinations Sum II](src/main/java/backtracking/CombinationSumII.java) (Medium)\n- [Letter Phone Number](src/main/java/backtracking/LetterPhoneNumber.java) (Medium)\n- [Paliandrome Partitioning](src/main/java/backtracking/PalindromePartitioning.java) (Medium)\n- [Permutations](src/main/java/backtracking/Permutations.java) (Medium)\n- [Permutations II](src/main/java/backtracking/PermutationsII.java) (Medium)\n- [SubSets](src/main/java/backtracking/Subsets.java) (Medium)\n- [SubSet II](src/main/java/backtracking/SubsetsII.java) (Medium)\n- [Word Search](src/main/java/backtracking/WordSearch.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Word Search II](src/main/java/backtracking/WordSearchII.java) (Hard)\n- [Generate Parentheses](src/main/java/backtracking/GenerateParentheses.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Remove Invalid Parentheses](src/main/java/backtracking/RemoveInvalidParentheses.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Regular Expression Matching](src/main/java/backtracking/RegularExpressionMatching.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Expression Add Operators](src/main/java/backtracking/ExpressionAddOperators.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Wildcard Matching](src/main/java/backtracking/WildcardMatching.java) (Hard)\n- [Letter Case Permutation](src/main/java/backtracking/LetterCasePermutation.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Zuma Game](src/main/java/backtracking/ZumaGame.java) (Hard)\n- [Matchsticks to Square](src/main/java/backtracking/MatchsticksToSquare.java) (Medium)\n\n#### [Binary Search](src/main/java/binary_search)\n\n- [Minimum Sorted Rotated Array](src/main/java/binary_search/MinSortedRotatedArray.java) (Medium)\n- [Search in a Rotated Sorted Array](src/main/java/binary_search/SearchRotatedSortedArray.java) (Medium)\n- [Search for a Range](src/main/java/binary_search/SearchForARange.java) (Medium)\n- [Sqrt(x)](src/main/java/binary_search/SqrtX.java) (Easy)\n- [Search Insert Position](src/main/java/binary_search/SearchInsertPosition.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Median of Two Sorted Arrays](src/main/java/binary_search/MedianOfTwoSortedArrays.java) (Hard)\n- [Pow(x, n)](src/main/java/binary_search/PowXN.java) (Medium)\n- [Find Peak Element](src/main/java/binary_search/FindPeakElement.java) (Medium)\n- [Target Sum](src/main/java/binary_search/TargetSum.java) (Medium)\n- [H-Index II](src/main/java/binary_search/HIndexII.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Swim in Rising Water](src/main/java/binary_search/SwimInRisingWater.java) (Hard)\n- [Time Based Key-Value Store](src/main/java/binary_search/TimeBasedKeyValuePair.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Window Subsequence](src/main/java/binary_search/MinimumWindowSubsequence.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Koko Eating Bananas](src/main/java/binary_search/KokoEatingBananas.java) (Hard)\n- [Single Element in a Sorted Array](src/main/java/binary_search/SingleElementInASortedArray.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimize the Maximum Adjacent Element Difference](src/main/java/binary_search/MinimizeTheMaximumAdjacentElementDifference.java) (Hard) \n  - [Youtube video explanation](https://www.youtube.com/watch?v=2fCtjA_eitU)\n\n#### [Bit Manipulation](src/main/java/bit_manipulation)\n\n- [Gray Code](src/main/java/bit_manipulation/GrayCode.java) (Medium)\n- [Hamming Distance](src/main/java/bit_manipulation/HammingDistance.java) (Easy)\n- [Total Hamming Distance](src/main/java/bit_manipulation/TotalHammingDistance.java) (Medium)\n- [Divide Two Integers](src/main/java/bit_manipulation/DivideTwoIntegers.java) (Medium)\n- [Binary Number with Alternating Bits](src/main/java/bit_manipulation/BinaryNumberWithAlternatingBits.java) (Easy)\n- [Binary Watch](src/main/java/bit_manipulation/BinaryWatch.java) (Easy)\n\n#### [Breadth First Search](src/main/java/breadth_first_search)\n\n- [Binaray Tree Level Order Traversal](src/main/java/breadth_first_search/BinarayTreeLevelOrderTraversal.java) (Medium)\n- [Word Ladder](src/main/java/breadth_first_search/WordLadder.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Word Ladder II](src/main/java/breadth_first_search/WordLadderII.java) (Hard)\n- [Walls and Gates](src/main/java/breadth_first_search/WallsAndGates.java) (Medium)\n- [Open the lock](src/main/java/breadth_first_search/OpenTheLock.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cut Off Trees for Golf Event](src/main/java/breadth_first_search/CutOffTreesForGolfEvent.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Race Car](src/main/java/breadth_first_search/RaceCar.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Bus Routes](src/main/java/breadth_first_search/BusRoutes.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Sliding Puzzle](src/main/java/breadth_first_search/SlidingPuzzle.java) (Hard)\n- [Matrix](src/main/java/breadth_first_search/Matrix.java) (Medium)\n- [Rotting Oranges](src/main/java/breadth_first_search/RottingOranges.java) (Medium)\n\n#### [Depth First Search](src/main/java/depth_first_search)\n\n- [Minesweeper](src/main/java/depth_first_search/Minesweeper.java) (Medium)\n- [Movie Recommend](src/main/java/depth_first_search/MovieRecommend.java) (Medium)\n- [Number Of Islands](src/main/java/depth_first_search/NumberOfIslands.java) (Medium)\n- [Course Schedule](src/main/java/depth_first_search/CourseSchedule.java) (Medium)\n- [Course Schedule II](src/main/java/depth_first_search/CourseScheduleII.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Alien Dictionary](src/main/java/depth_first_search/AlienDictionary.java) (Hard)\n- [Graph Valid Tree](src/main/java/depth_first_search/GraphValidTree.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Longest Consecutive Sequence](src/main/java/depth_first_search/LongestConsecutiveSequence.java) (Hard)\n- [Accounts Merge](src/main/java/depth_first_search/AccountsMerge.java) (Medium)\n- [CloneGraph](src/main/java/depth_first_search/CloneGraph.java) (Medium)\n- [Island Perimeter](src/main/java/depth_first_search/IslandPerimeter.java) (Easy)\n- [Number of Distinct Islands](src/main/java/depth_first_search/NumberOfDistinctIslands.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Distinct Islands II](src/main/java/depth_first_search/NumberOfDistinctIslandsII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Rectangle Enclosing Black Pixels](src/main/java/depth_first_search/SmallestRectangleEnclosingBlackPixels.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Bricks Falling When Hit](src/main/java/depth_first_search/BricksFallingWhenHit.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Robot Room Cleaner](src/main/java/depth_first_search/RobotRoomCleaner.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cracking the Safe](src/main/java/depth_first_search/CrackingTheSafe.java) (Hard)\n- [All Paths From Source to Target](src/main/java/depth_first_search/AllPathsFromSourceToTarget.java) (Medium)\n- [Max Area of Island](src/main/java/depth_first_search/MaxAreaOfIsland.java) (Medium)\n- [Satisfiability of Equality Equations](src/main/java/depth_first_search/SatisfiabilityOfEquations.java) (Medium)\n- [Number of Enclaves](src/main/java/depth_first_search/NumberOfEnclaves.java) (Medium)\n- [As Far from Land as Possible](src/main/java/depth_first_search/AsFarfromLandAsPossible.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimize Malware Spread](src/main/java/depth_first_search/MinimizeMalwareSpread.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Parallel Courses](src/main/java/depth_first_search/ParallelCourses.java) (Hard)\n- [Connecting Cities With Minimum Cost](src/main/java/depth_first_search/ConnectingCitiesWithMinimumCost.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Critical Connections in a Network](src/main/java/depth_first_search/CriticalConnection.java) (Hard)\n\n#### [Design](src/main/java/design)\n\n- [Copy List With Random Pointer](src/main/java/design/CopyListWithRandomPointer.java) (Medium)\n- [Encode and Decode Tiny URL](src/main/java/design/EncodeAndDecodeTinyURL.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [LFU Cache](src/main/java/design/LFUCache.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [LRU Cache](src/main/java/design/LRUCache.java) (Hard)\n- [Insert Delete Get Random](src/main/java/design/RandomizedSet.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Serialize Deserialize Binary Tree](src/main/java/design/SerializeDeserializeBinaryTree.java) (Hard)\n- [Design Twitter](src/main/java/design/Twitter.java) (Medium)\n- [Tic-Tac-Toe](src/main/java/design/TicTacToe.java) (Medium)\n- [Implement Trie (Prefix Tree)](src/main/java/design/Trie.java) (Medium)\n- [Binary Search Tree Iterator](src/main/java/design/BSTIterator.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Design Search Autocomplete System](src/main/java/design/AutocompleteSystem.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Design Excel Sum Formula](src/main/java/design/Excel.java) (Hard)\n- [Flatten Nested List Iterator](src/main/java/design/NestedIterator.java) (Medium)\n- [Add and Search Word - Data structure design](src/main/java/design/WordDictionary.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Prefix and Suffix Search](src/main/java/design/WordFilter.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Insert Delete GetRandom O(1) - Duplicates allowed](src/main/java/design/RandomizedCollection.java) (Hard)\n\n#### [Divide and Conquer](src/main/java/divide_and_conquer)\n\n- [Kth Largest Element In a Array](src/main/java/divide_and_conquer/KthLargestElementInAnArray.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reverse Pairs](src/main/java/divide_and_conquer/ReversePairs.java) (Hard)\n- [Search in a 2D Matrix](src/main/java/divide_and_conquer/SearchA2DMatrix.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [24 Game](src/main/java/divide_and_conquer/TwentyFourGame.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reverse Pairs II](src/main/java/divide_and_conquer/ReversePairsII.java) (Hard)\n- [My Calendar II](src/main/java/divide_and_conquer/MyCalendarII.java) (Medium)\n\n#### [Dynamic Programming](src/main/java/dynamic_programming)\n\n- [Best Time To Buy and Sell Stocks](src/main/java/dynamic_programming/BestTimeToBuyAndSellStocks.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Best Time to Buy and Sell Stock III](src/main/java/dynamic_programming/BestTimeToBuyAndSellStockIII.java) (Hard)\n- [Best Time to Buy and Sell Stock with Transaction Fee](src/main/java/dynamic_programming/BestTimeToBuyAndSellStocksWithFee.java) (Medium)\n- [Climbing Stairs](src/main/java/dynamic_programming/ClimbingStairs.java) (Easy)\n- [Coin Change](src/main/java/dynamic_programming/CoinChange.java) (Medium)\n- [Coin Change 2](src/main/java/dynamic_programming/CoinChange2.java) (Medium)\n- [Decode Ways](src/main/java/dynamic_programming/DecodeWays.java) (Medium)\n- [House Robber](src/main/java/dynamic_programming/HouseRobber.java) (Easy)\n- [House Robber II](src/main/java/dynamic_programming/HouseRobberII.java) (Medium)\n- [Longest Increasing Subsequence](src/main/java/dynamic_programming/LongestIncreasingSubsequence.java) (Medium)\n- [Longest Paliandromic Substring](src/main/java/dynamic_programming/LongestPaliandromicSubstring.java) (Medium)\n- [Longest Palindromic Subsequence](src/main/java/dynamic_programming/LongestPalindromicSubsequence.java) (Medium)\n- [Maximum Product Subarray](src/main/java/dynamic_programming/MaximumProductSubarray.java) (Medium)\n- [Min Cost Climbing Stairs](src/main/java/dynamic_programming/MinCostClimbingStairs.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Partitioning II](src/main/java/dynamic_programming/PalindromePartitioningII.java) (Hard)\n- [UniqueBinary Search Trees](src/main/java/dynamic_programming/UniqueBinarySearchTrees.java) (Medium)\n- [Unique Binary Search Trees II](src/main/java/dynamic_programming/UniqueBinarySearchTreesII.java) (Medium)\n- [WordBreak](src/main/java/dynamic_programming/WordBreak.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [WordBreak II](src/main/java/dynamic_programming/WordBreakII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Concatenated Words](src/main/java/dynamic_programming/ConcatenatedWords.java) (Hard)\n- [Can I Win](src/main/java/dynamic_programming/CanIWin.java) (Medium)\n- [Maximum Subarray](src/main/java/dynamic_programming/MaximumSubarray.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Dungeon Game](src/main/java/dynamic_programming/DungeonGame.java) (Hard)\n- [2 Keys Keyboard](src/main/java/dynamic_programming/TwoKeysKeyboard.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximum Sum of 3 Non-Overlapping Subarrays](src/main/java/dynamic_programming/MaxSum3SubArray.java) (Hard)\n- [Maximal Square](src/main/java/dynamic_programming/MaximalSquare.java) (Medium)\n- [Continuous Subarray Sum](src/main/java/dynamic_programming/ContinuousSubarraySum.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Decode Ways II](src/main/java/dynamic_programming/DecodeWaysII.java) (Hard)\n- [Palindromic Substrings](src/main/java/dynamic_programming/PalindromicSubstrings.java) (Medium)\n- [Number of Longest Increasing Subsequence](src/main/java/dynamic_programming/NumberOfLIS.java) (Medium)\n- [Combination Sum IV](src/main/java/dynamic_programming/CombinationSumIV.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Paint House II](src/main/java/dynamic_programming/PaintHouseII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Split Array Largest Sum](src/main/java/dynamic_programming/SplitArrayLargestSum.java) (Hard)\n- [Number Of Corner Rectangles](src/main/java/dynamic_programming/CornerRectangles.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Burst Balloons](src/main/java/dynamic_programming/BurstBalloons.java) (Hard)\n- [Largest Plus Sign](src/main/java/dynamic_programming/LargestPlusSign.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Pairs](src/main/java/dynamic_programming/PalindromePairs.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cherry Pickup](src/main/java/dynamic_programming/CherryPickup.java) (Hard)\n- [Knight Probability in Chessboard](src/main/java/dynamic_programming/KnightProbabilityInChessboard.java) (Medium)\n- [Largest Sum of Averages](src/main/java/dynamic_programming/LargestSumOfAverages.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Number of Refueling Stops](src/main/java/dynamic_programming/MinimumNumberOfRefuelingStops.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cat and Mouse](src/main/java/dynamic_programming/CatAndMouse.java) (Hard)\n- [Stone Game](src/main/java/dynamic_programming/StoneGame.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Odd Even Jump](src/main/java/dynamic_programming/OddEvenJump.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Profitable Schemes](src/main/java/dynamic_programming/ProfitableSchemes.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximum Vacation Days](src/main/java/dynamic_programming/MaximumVacationDays.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Russian Doll Envelopes](src/main/java/dynamic_programming/RussianDollEnvelopes.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Student Attendance Record II](src/main/java/dynamic_programming/StudentAttendanceRecordII.java) (Hard)\n- [Out of Boundary Paths](src/main/java/dynamic_programming/OutOfBoundaryPaths.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Remove Boxes](src/main/java/dynamic_programming/RemoveBoxes.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Stickers to Spell Word](src/main/java/dynamic_programming/StickersToSpellWord.java) (Hard)\n- [Ones and Zeroes](src/main/java/dynamic_programming/OnesAndZeroes.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Encode String with Shortest Length](src/main/java/dynamic_programming/EncodeStringWithShortestLength.java) (Hard)\n- [Length of Longest Fibonacci Subsequence](src/main/java/dynamic_programming/LengthofLongestFibonacciSubsequence.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Make Array Strictly Increasing](src/main/java/dynamic_programming/MakeArrayStrictlyIncreasing.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Number of Taps to Open to Water a Garden](src/main/java/dynamic_programming/MinimumNumberOfTaps.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Delete Columns to Make Sorted III](src/main/java/dynamic_programming/DeleteColumnsToMakeSortedIII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Handshakes That Don't Cross](src/main/java/dynamic_programming/HandshakesThatDontCross.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Difficulty of a Job Schedule](src/main/java/dynamic_programming/MinimumDifficultyOfAJobSchedule.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Jump Game V](src/main/java/dynamic_programming/JumpGameV.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Freedom Trail](src/main/java/dynamic_programming/FreedomTrail.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Strange Printer](src/main/java/dynamic_programming/StrangePrinter.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Cost to Merge Stones](src/main/java/dynamic_programming/MinimumCostToMergeStones.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Interleaving String](src/main/java/dynamic_programming/InterleavingString.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Count Vowels Permutation](src/main/java/dynamic_programming/CountVowelsPermutation.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Non-negative Integers without Consecutive Ones](src/main/java/dynamic_programming/NonNegativeIntegersWithoutConsecutiveOnes.java) (Hard)\n- [Bomb Enemy](src/main/java/dynamic_programming/BombEnemy.java) (Medium)\n- [Number of Dice Rolls With Target Sum](src/main/java/dynamic_programming/NumberOfDiceRollsWithTargetSum.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Distinct Subsequences](src/main/java/dynamic_programming/DistinctSubsequences.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Distinct Subsequences II](src/main/java/dynamic_programming/DistinctSubsequencesII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Distance to Type a Word Using Two Fingers](src/main/java/dynamic_programming/MinimumDistanceToTypeAWordUsingTwoFingers.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Valid Palindrome III](src/main/java/dynamic_programming/ValidPalindromeIII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Partitioning III](src/main/java/dynamic_programming/PalindromePartitioningIII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Tiling a Rectangle with the Fewest Squares](src/main/java/dynamic_programming/TilingARectangle.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Longest Chunked Palindrome Decomposition](src/main/java/dynamic_programming/LongestChunkedPalindromeDecomposition.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Stone Game III](src/main/java/dynamic_programming/StoneGameIII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Ways to Stay in the Same Place After Some Steps](src/main/java/dynamic_programming/NumberOfWaysToStayInTheSamePlace.java) (Hard)\n- [Toss Strange Coins](src/main/java/dynamic_programming/TossStrangeCoins.java) (Medium)\n- [Knight Dialer](src/main/java/dynamic_programming/KnightDialer.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Palindrome Removal](src/main/java/dynamic_programming/PalindromeRemoval.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Restore The Array](src/main/java/dynamic_programming/RestoreTheArray.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Cherry Pickup II](src/main/java/dynamic_programming/CherryPickupII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Constrained Subsequence Sum](src/main/java/dynamic_programming/ConstrainedSubsequenceSum.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Largest Multiple of Three](src/main/java/dynamic_programming/LargestMultipleOfThree.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Largest Multiple of Three](src/main/java/dynamic_programming/MaximumProfitInJobScheduling.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Music Playlists](src/main/java/dynamic_programming/NumberOfMusicPlaylists.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Paint House III](src/main/java/dynamic_programming/PaintHouseIII.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Shortest Path Visiting All Nodes](src/main/java/dynamic_programming/ShortestPathVisitingAllNodes.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Sufficient Team](src/main/java/dynamic_programming/SmallestSufficientTeam.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Stone Game IV](src/main/java/dynamic_programming/StoneGameIV.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Tallest Billboard](src/main/java/dynamic_programming/TallestBillboard.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Count Different Palindromic Subsequences](src/main/java/dynamic_programming/CountDifferentPalindromicSubsequences.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Paths with Max Score](src/main/java/dynamic_programming/NumberOfPathsWithMaxScore.java) (Hard)\n\n\n#### [Greedy](src/main/java/greedy)\n\n- [Jump Game](src/main/java/greedy/JumpGame.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Jump Game II](src/main/java/greedy/JumpGameII.java) (Hard)\n- [Course Schedule III](src/main/java/greedy/CourseScheduleIII.java) (Medium)\n- [GasStation](src/main/java/greedy/GasStation.java) (Medium)\n- [Non-Overlapping Intervals](src/main/java/greedy/NonOverlappingIntervals.java) (Medium)\n- [Minimum Number of Arrows to Burst Balloons](src/main/java/greedy/BurstBalloons.java) (Medium)\n- [Queue Reconstruction By Height](src/main/java/greedy/QueueReconstructionByHeight.java) (Medium)\n- [Task Scheduler](src/main/java/greedy/TaskScheduler.java) (Medium)\n- [Maximum Length of Pair Chain](src/main/java/greedy/MaximumLengthOfPairChain.java) (Medium)\n- [Lemonade Change](src/main/java/greedy/LemonadeChange.java) (Easy)\n- [Score After Flipping Matrix](src/main/java/greedy/ScoreAfterFlippingMatrix.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [IPO](src/main/java/greedy/IPO.java) (Hard)\n- [String Without AAA or BBB](src/main/java/greedy/StringWithout3A3B.java) (Medium)\n- [Boats to Save People](src/main/java/greedy/BoatsToSavePeople.java) (Medium)\n- [Broken Calculator](src/main/java/greedy/BrokenCalculator.java) (Medium)\n- [Two City Scheduling](src/main/java/greedy/TwoCityScheduling.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Time to Build Blocks](src/main/java/greedy/MinimumTimeToBuildBlocks.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reducing Dishes](src/main/java/greedy/ReducingDishes.java) (Hard)\n\n#### [Hashing](src/main/java/hashing)\n\n- [Anagrams](src/main/java/hashing/Anagrams.java) (Medium)\n- [Group Anagrams](src/main/java/hashing/GroupAnagrams.java) (Medium)\n- [Kdiff Pairs In a Array](src/main/java/hashing/KdiffPairsInanArray.java) (Easy)\n- [Sort Character by Frequency](src/main/java/hashing/SortCharByFrequency.java) (Medium)\n- [Two Sum](src/main/java/hashing/TwoSum.java) (Easy)\n- [Valid Anagram](src/main/java/hashing/ValidAnagram.java) (Easy)\n- [Maximum Size Subarray Sum Equals k](src/main/java/hashing/MaximumSizeSubarraySumEqualsk.java) (Medium)\n- [Contiguous Array](src/main/java/hashing/ContiguousArray.java) (Medium)\n- [Brick Wall](src/main/java/hashing/BrickWall.java) (Medium)\n- [Partition Labels](src/main/java/hashing/PartitionLabels.java) (Medium)\n- [Custom Sort String](src/main/java/hashing/CustomSortString.java) (Medium)\n- [Short Encoding of Words](src/main/java/hashing/ShortEncodingOfWords.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Substring with Concatenation of All Words](src/main/java/hashing/SubstringConcatenationOfWords.java) (Hard)\n- [Distribute Candies](src/main/java/hashing/DistributeCandies.java) (Easy)\n- [Groups of Special-Equivalent Strings](src/main/java/hashing/GroupsOfSpecialEquivalentStrings.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Number of Atoms](src/main/java/hashing/NumberOfAtoms.java) (Hard)\n- [Analyze User Website Visit Pattern](src/main/java/hashing/AnalyzeUserWebsiteVisitPattern.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [String Transforms Into Another String](src/main/java/hashing/StringTransformsIntoAnotherString.java) (Hard)\n\n#### [Heap](src/main/java/heap)\n\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Sliding Window Maximum](src/main/java/heap/SlidingWindowMaximum.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [The Skyline Problem](src/main/java/heap/TheSkylineProblem.java) (Hard)\n- [Meeting Rooms II](src/main/java/heap/MeetingRoomsII.java) (Medium)\n- [Top K Frequent Words](src/main/java/heap/TopKFrequentWords.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Candy](src/main/java/heap/Candy.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Rotation with Highest Score](src/main/java/heap/SmallestRotationWithHighestScore.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximum Frequency Stack](src/main/java/heap/FreqStack.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reachable Nodes In Subdivided Graph](src/main/java/heap/ReachableNodesInSubdividedGraph.java) (Hard)\n- [K Closest Points to Origin](src/main/java/heap/KClosestPointsToOrigin.java) (Medium)\n- [Distant Barcodes](src/main/java/heap/DistantBarcodes.java) (Medium)\n\n#### [Linked List](src/main/java/linked_list)\n\n- [Intersection of two Linked-Lists](src/main/java/linked_list/IntersectionOfTwoLists.java) (Easy)\n- [Linked List Cycle](src/main/java/linked_list/LinkedListCycle.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Merge K Sorted Lists](src/main/java/linked_list/MergeKSortedLists.java) (Hard)\n- [Merge Two Sorted List](src/main/java/linked_list/MergeTwoSortedList.java) (Easy)\n- [Paliandrome List](src/main/java/linked_list/PaliandromeList.java) (Easy)\n- [Reverse Linked List](src/main/java/linked_list/ReverseLinkedList.java) (Easy)\n- [Delete Node in a Linked List](src/main/java/linked_list/DeleteNode.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reverse Nodes in k-Group](src/main/java/linked_list/ReverseNodesKGroup.java) (Hard)\n- [Swap Nodes in Pairs](src/main/java/linked_list/SwapNodesInPairs.java) (Medium)\n- [Middle of Linked List](src/main/java/linked_list/MiddleOfLinkedList.java) (Easy)\n- [Split Linked List in Parts](src/main/java/linked_list/SplitLinkedListInParts.java) (Medium)\n- [Next Greater Node In Linked List](src/main/java/linked_list/NextGreaterNodeInLinkedList.java) (Medium)\n\n#### [Math](src/main/java/math)\n\n- [Add Two Numbers](src/main/java/math/AddTwoNumbers.java) (Medium)\n- [Count Primes](src/main/java/math/CountPrimes.java) (Easy)\n- [Rotate Function](src/main/java/math/RotateFunction.java) (Medium)\n- [Water and Jug Problem](src/main/java/math/WaterAndJugProblem.java) (Medium)\n- [Add Digits](src/main/java/math/AddDigits.java) (Easy)\n- [Excel Sheet Column Title](src/main/java/math/ExcelSheetColumnTitle.java) (Easy)\n- [Roman to Integer](src/main/java/math/RomanToInteger.java) (Easy)\n- [Bulb Switcher II](src/main/java/math/BulbSwitcherII.java) (Medium)\n- [Global and Local Inversions](src/main/java/math/GlobalAndLocalInversions.java) (Medium)\n- [Solve the Equation](src/main/java/math/SolveTheEquation.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Couples Holding Hands](src/main/java/math/CouplesHoldingHands.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Reaching Points](src/main/java/math/ReachingPoints.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Nth Magical Number](src/main/java/math/NthMagicalNumber.java) (Hard)\n- [Squirrel Simulation](src/main/java/math/SquirrelSimulation.java) (Medium)\n- [Projection Area of 3D Shapes](src/main/java/math/ProjectionAreaOf3DShapes.java) (Easy)\n- [Decoded String at Index](src/main/java/math/DecodedStringAtIndex.java) (Medium)\n- [Base 7](src/main/java/math/Base7.java) (Easy)\n- [Smallest Range I](src/main/java/math/SmallestRangeI.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Largest Component Size by Common Factor](src/main/java/math/LargestComponentSizebyCommonFactor.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Super Washing Machines](src/main/java/math/SuperWashingMachines.java) (Hard)\n- [Rectangle Overlap](src/main/java/math/RectangleOverlap.java) (Easy)\n- [Nth Digit](src/main/java/math/NthDigit.java) (Easy)\n\n#### [Reservoir Sampling](src/main/java/reservoir_sampling)\n\n- [Random Pick Index](src/main/java/reservoir_sampling/RandomPickIndex.java) (Medium)\n\n#### [Stack](src/main/java/stack)\n\n- [Min Stack](src/main/java/stack/MinStack.java) (Easy)\n- [Valid Parentheses](src/main/java/stack/ValidParentheses.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Largest Rectangle In Histogram](src/main/java/stack/LargestRectangleInHistogram.java) (Hard)\n- [Implement Queue using Stacks](src/main/java/stack/MyQueue.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Maximal Rectangle](src/main/java/stack/MaximalRectangle.java) (Hard)\n- [Exclusive Time of Functions](src/main/java/stack/ExclusiveTimeOfFunctions.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Basic Calculator](src/main/java/stack/BasicCalculator.java) (Hard)\n- [Decode String](src/main/java/stack/DecodeString.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Longest Valid Parentheses](src/main/java/stack/LongestValidParentheses.java) (Hard)\n\n\n#### [String](src/main/java/string)\n\n- [First Unique Character In a String](src/main/java/string/FirstUniqueCharacterInAString.java) (Easy)\n- [Repeated Substring Pattern](src/main/java/string/RepeatedSubstringPattern.java) (Easy)\n- [Reverse Words In a String](src/main/java/string/ReverseWordsInAString.java) (Medium)\n- [ReverseWords II](src/main/java/string/ReverseWordsII.java) (Medium)\n- [String to Integer](src/main/java/string/StringToInteger.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Text Justification](src/main/java/string/TextJustification.java) (Hard)\n- [ZigZag Conversion](src/main/java/string/ZigZagConversion.java) (Medium)\n- [Implement StrStr](src/main/java/string/ImplementStrStr.java) (Easy)\n- [Excel Sheet Column Number](src/main/java/string/ExcelSheetColumnNumber.java) (Easy)\n- [Compare Version Numbers](src/main/java/string/CompareVersionNumbers.java) (Easy)\n- [Valid Palindrome](src/main/java/string/ValidPalindrome.java) (Easy)\n- [Simplify Path](src/main/java/string/SimplifyPath.java) (Medium)\n- [Permutation in String](src/main/java/string/PermutationInString.java) (Medium)\n- [Add Binary](src/main/java/string/AddBinary.java) (Easy)\n- [Valid Palindrome II](src/main/java/string/ValidPalindromeII.java) (Easy)\n- [One Edit Distance](src/main/java/string/OneEditDistance.java) (Medium)\n- [Count and Say](src/main/java/string/CountAndSay.java) (Easy)\n- [Multiply Strings](src/main/java/string/MultiplyStrings.java) (Medium)\n- [Longest Word in Dictionary through Deleting](src/main/java/string/LongestWordInDictonary.java) (Medium)\n- [Isomorphic Strings](src/main/java/string/IsomorphicStrings.java) (Easy)\n- [String Compression](src/main/java/string/StringCompression.java) (Easy)\n- [Longest Common Prefix](src/main/java/string/LongestCommonPrefix.java) (Easy)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Find the Closest Palindrome](src/main/java/string/FindTheClosestPalindrome.java) (Hard)\n- [Monotone Increasing Digits](src/main/java/string/MonotoneIncreasingDigits.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Shortest Palindrome](src/main/java/string/ShortestPalindrome.java) (Hard)\n- [Valid Word Abbreviation](src/main/java/string/ValidWordAbbreviation.java) (Easy)\n- [Longest Palindrome](src/main/java/string/LongestPalindrome.java) (Easy)\n- [Replace Words](src/main/java/string/ReplaceWords.java) (Medium)\n- [Rotate String](src/main/java/string/RotateString.java) (Easy)\n- [Keyboard Row](src/main/java/string/KeyboardRow.java) (Easy)\n- [Student Attendance Record I](src/main/java/string/StudentAttendanceRecordI.java) (Easy)\n- [Split Concatenated Strings](src/main/java/string/SplitConcatenatedStrings.java) (Medium)\n- [Valid Word Square](src/main/java/string/ValidWordSquare.java) (Easy)\n- [Reconstruct Original Digits from English](src/main/java/string/ReconstructOriginalDigitsFromEnglish.java) (Medium)\n- [Push Dominoes](src/main/java/string/PushDominoes.java) (Medium)\n- [Validate IP Address](src/main/java/string/ValidateIPAddress.java) (Medium)\n- [Reverse String II](src/main/java/string/ReverseStringII.java) (Easy)\n- [Find Words That Can Be Formed by Characters](src/main/java/string/FindWordsThatCanBeFormedbyCharacters.java) (Easy)\n- [Minimum Add to Make Parentheses Valid](src/main/java/string/MinimumAddtoMakeParenthesesValid.java) (Medium)\n\n#### [Tree](src/main/java/tree)\n\n- [Binaray Tree Right Side View](src/main/java/tree/BinarayTreeRightSideView.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Binary Tree Maximum Path Sum](src/main/java/tree/BinaryTreeMaximumPathSum.java) (Hard)\n- [Boundary of Binary Tree](src/main/java/tree/BoundaryOfBinaryTree.java) (Medium)\n- [Convert sorted array to BST](src/main/java/tree/ConvertSortedArrayToBST.java) (Medium)\n- [Lowest Common Ancestor of a Binary Tree](src/main/java/tree/LCA.java) (Medium)\n- [Lowest Common Ancestor of a BST](src/main/java/tree/LowestCommonAncestorBST.java) (Easy)\n- [Most Frequent Subtree Sum](src/main/java/tree/MostFrequentSubtreeSum.java) (Medium)\n- [Path Sum III](src/main/java/tree/PathSumIII.java) (Easy)\n- [Convert Postorder and Inorder traversal to Binary Tree](src/main/java/tree/PostorderToBT.java) (Medium)\n- [Convert Preorder and Inorder traversal to Binary Tree](src/main/java/tree/PreorderToBT.java) (Medium)\n- [Sorted Array to BST](src/main/java/tree/SortedArrayToBST.java) (Medium)\n- [Valid Binary Search Tree](src/main/java/tree/ValidBinarySearchTree.java) (Medium)\n- [Largest BST Subtree](src/main/java/tree/LargestBSTSubtree.java) (Medium)\n- [Closest Binary Search Tree Value](src/main/java/tree/ClosestBinarySearchTreeValue.java) (Easy)\n- [Inorder Successor in BST](src/main/java/tree/InorderSuccessorInBST.java) (Medium)\n- [Construct String From Binary Tree](src/main/java/tree/ConstructStringFromBinaryTree.java) (Easy)\n- [Flatten Binary Tree to Linked List](src/main/java/tree/FlattenBinaryTree.java) (Medium)\n- [Populating Next Right Pointers in Each Node](src/main/java/tree/NextRightPointer.java) (Medium)\n- [Populating Next Right Pointers in Each Node II](src/main/java/tree/NextRightPointerII.java) (Medium)\n- [Subtree of Another Tree](src/main/java/tree/SubtreeOfAnotherTree.java) (Easy)\n- [Binary Tree Zigzag Level Order Traversal](src/main/java/tree/ZigZagTraversal.java) (Medium)\n- [Binary Tree Inorder Traversal](src/main/java/tree/BinaryTreeInorderTraversal.java) (Medium)\n- [Symmetric Tree](src/main/java/tree/SymmetricTree.java) (Easy)\n- [Maximum Binary Tree](src/main/java/tree/MaximumBinaryTree.java) (Medium)\n- [Find Bottom Left Tree Value](src/main/java/tree/FindBottomLeftTreeValue.java) (Medium)\n- [Diameter of Binary Tree](src/main/java/tree/DiameterOfBinaryTree.java) (Easy)\n- [Binary Tree Paths](src/main/java/tree/BinaryTreePaths.java) (Easy)\n- [Sum of Left Leaves](src/main/java/tree/SumofLeftLeaves.java) (Easy)\n- [Two Sum IV - Input is a BST](src/main/java/tree/TwoSumIV.java) (Easy)\n- [Average of Levels in Binary Tree](src/main/java/tree/AverageOfLevelsInBinaryTree.java) (Easy)\n- [Convert Binary Search Tree to Sorted Doubly Linked List](src/main/java/tree/BSTtoDoublyLinkedList.java) (Easy)\n- [Same Tree](src/main/java/tree/SameTree.java) (Easy)\n- [Binary Tree Longest Consecutive SequencefindMinDifference II](src/main/java/tree/BinaryTreeLongestConsecutiveSequenceII.java) (Medium)\n- [Minimum Absolute Difference in BST](src/main/java/tree/MinimumAbsoluteDifferenceInBST.java) (Medium)\n- [Equal Tree Partition](src/main/java/tree/EqualTreePartition.java) (Medium)\n- [Split BST](src/main/java/tree/SplitBST.java) (Medium)\n- [Closest Leaf in a Binary Tree](src/main/java/tree/ClosestLeafInABinaryTree.java) (Medium)\n- [Maximum Width of Binary Tree](src/main/java/tree/MaximumWidthOfBinaryTree.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Recover Binary Search Tree](src/main/java/tree/RecoverBinarySearchTree.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Binary Tree Postorder Traversal](src/main/java/tree/BinaryTreePostorderTraversal.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Serialize and Deserialize N-ary Tree](src/main/java/tree/SerializeAndDeserializeNAryTree.java) (Hard)\n- [Convert BST to Greater Tree](src/main/java/tree/ConvertBSTToGreaterTree.java) (Easy)\n- [All Nodes Distance K in Binary Tree](src/main/java/tree/AllNodesDistanceKInBinaryTree.java) (Medium)\n- [All Possible Full Binary Trees](src/main/java/tree/AllPossibleFullBinaryTrees.java) (Medium)\n- [Flip Equivalent Binary Trees](src/main/java/tree/FlipEquivalentBinaryTrees.java) (Medium)\n- [Construct Binary Tree from String](src/main/java/tree/ConstructBinaryTreefromString.java) (Medium)\n- [Find Largest Value in Each Tree Row](src/main/java/tree/FindLargestValueInEachTreeRow.java) (Medium)\n- [Find Bottom Left Tree Value](src/main/java/tree/FindBottomLeftTreeValue.java) (Medium)\n- [Maximum Level Sum of a Binary Tree](src/main/java/tree/MaximumLevelSumofABinaryTree.java) (Medium)\n- [Leaf-Similar Trees](src/main/java/tree/LeafSimilarTrees.java) (Easy)\n- [Binary Tree Tilt](src/main/java/tree/BinaryTreeTilt.java) (Easy)\n\n#### [Two Pointers](src/main/java/two_pointers)\n\n- [Four Sum](src/main/java/two_pointers/FourSum.java) (Medium)\n- [Longest Substring Witout Repeats](src/main/java/two_pointers/LongestSubstringWitoutRepeats.java) (Medium)\n- [Three Sum](src/main/java/two_pointers/ThreeSum.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Trapping Rain Water](src/main/java/two_pointers/TrappingRainWater.java) (Hard)\n- [3Sum Closest](src/main/java/two_pointers/ThreeSumClosest.java) (Medium)\n- [Move Zeroes](src/main/java/two_pointers/MoveZeroes.java) (Easy)\n- [Remove Duplicates](src/main/java/two_pointers/RemoveDuplicates.java) (Easy)\n- [Remove Duplicates II](src/main/java/two_pointers/RemoveDuplicatesII.java) (Medium)\n- [Minimum Size Subarray Sum](src/main/java/two_pointers/MinimumSizeSubarraySum.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Minimum Window Substring](src/main/java/two_pointers/MinimumWindowSubstring.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Smallest Range](src/main/java/two_pointers/SmallestRange.java) (Hard)\n- [Subarray Product Less Than K](src/main/java/two_pointers/SubarrayProductLessThanK.java) (Medium)\n- [Number of Matching Subsequences](src/main/java/two_pointers/NumberOfMatchingSubsequences.java) (Medium)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Subarrays with K Different Integers](src/main/java/two_pointers/SubarraysWithKDifferentIntegers.java) (Hard)\n- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) [Last Substring in Lexicographical Order](src/main/java/two_pointers/LastSubstringInLexicographicalOrder.java) (Hard)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgouthampradhan%2Fleetcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgouthampradhan%2Fleetcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgouthampradhan%2Fleetcode/lists"}