Algorithms
Problems
513 problems grouped by topic. Every ladder starts simple and builds to hard, so the next problem is always within reach.
0 of 513 solved
Explore the full track
Learn each idea, practise it progressively, then connect the work to projects and your role path.
Browse topics 26 sections · Jump to a section
Problems
Arrays and Matrix0 / 3838⌄
ProblemDifficulty
1Array Length and EndsFreeEasy2Sum Array ElementsFreeEasy3Count Target OccurrencesFreeEasy4Find Largest ValueFreeEasy734Two Largest Values, Repeats IncludedFreeMedium413Largest FourEasy5Second Largest Distinct ValueEasy6Running SumEasy7Greatest to the RightEasy171Buildings With an Ocean ViewMedium8Product Except SelfMedium9In Place ReversalEasy10Remove ElementEasy11Rotate Array RightMedium12Matrix DimensionsEasy13Matrix Row SumsEasy14Transpose MatrixEasy409Reshape MatrixEasy15Toeplitz MatrixEasy16Main Diagonal SumEasy735Group Cells by DiagonalEasy411Diagonal TraverseMedium17Spiral Matrix TraversalMedium410Generate Spiral MatrixMedium18Rotate Square MatrixMedium19Set Matrix ZeroesMedium20Game of Life In PlaceMedium737Cancel Paired Bit PatternsMedium414Single NumberEasy415Missing NumberEasy736Mark Multiples OnceEasy412Count PrimesMedium731Crush Matching CandiesMedium732Drop CandiesEasy733Candy CrushHard753Compare Partially Rated ProfilesMedium754Predict One Rating from NeighborsEasy21Recommend MoviesMediumString and Array0 / 2121⌄
ProblemDifficulty
25String Length and EndsFreeEasy26Count Character OccurrencesFreeEasy27Build Reversed StringFreeEasy28Reverse Character ArrayFreeEasy29Reverse Each WordFreeEasy30Reverse Word OrderMedium33Longest Common PrefixEasy31Valid PalindromeEasy32Palindrome After One DeletionMedium40Trim Matching EndsMedium730Palindrome from a Common String SplitMedium34Run-Length EncodeEasy420Number StreamEasy35In-Place String CompressionMedium36First Substring MatchEasy37Count Overlapping MatchesEasy38Find the DifferenceEasy39Is SubsequenceEasy728Longest Dictionary Word by Deleting CharactersMedium41String to Integer (atoi)Medium42Valid NumberHardHash Maps and Sets0 / 4444⌄
ProblemDifficulty
45Contains DuplicateFreeEasy738Presence Slots for Bounded ValuesFreeEasy418Find All Duplicates in an ArrayFreeMedium419Find All Missing ValuesFreeMedium46Is UniqueFreeEasy47Find the Duplicate NumberMedium48Nearby DuplicateEasy51First Unique CharacterEasy52Valid AnagramEasy416Majority ElementEasy739Verify Frequency CandidatesEasy417Majority Elements over One ThirdMedium53Ransom NoteEasy54Palindrome PermutationEasy55Longest Buildable PalindromeEasy56Find Common CharactersEasy57Bulls and CowsMedium59Intersection UniqueEasy60Intersection with MultiplicityEasy61Two Sum IndicesEasy62Earliest Complement PairsMedium132Two Sum Data StructureMedium64K-diff Pairs in an ArrayMedium65Count Good MealsMedium664Sum IIMedium63Digit Pair Spacing CheckEasy67Brick WallMedium68Longest Consecutive SequenceMedium69Group AnagramsMedium740Find Reversed Word PartnersEasy741Complete a Palindrome on the LeftEasy422Palindrome PairsHard766Count K-Word PhrasesEasy70Equal Row and Column PairsMedium71Valid SudokuMedium72Top K Frequent ElementsMedium73Sort Characters by FrequencyMedium74Isomorphic StringsEasy75Word PatternEasy76Find and Replace PatternMedium77Roman to IntegerEasy756Find the Bucket AddressEasy49Maximum GapHard50Nearby Almost DuplicateHardSimple Sorting0 / 1818⌄
ProblemDifficulty
651Already In Order?FreeEasy652Count the DropsFreeEasy653Smallest to the FrontFreeEasy654Selection Sort From ScratchFreeEasy655Bubble Sort From ScratchFreeEasy656How Many Sweeps?Medium657Total Swaps to SortMedium659Slot One Value InEasy658Insertion Sort From ScratchEasy660Sort Largest FirstEasy661Second Smallest ValueEasy662K-th SmallestMedium663Merge Two Sorted ArraysMedium664Evens Before OddsMedium665Sort Small Non-Negative IntsMedium666Sort Three ColorsMedium667Squares of a Sorted ArrayMedium668Sort by How OftenMediumSorting0 / 1616⌄
ProblemDifficulty
755Sum by Splitting and ReturningFreeMedium78Sort an ArrayFreeMedium79Count InversionsFreeHard80Partition Around a PivotFreeMedium81Implement QuickselectFreeMedium82Multi-Field SortEasy83Relative Sort ArrayMedium84Sort by FrequencyEasy85Largest Concatenated NumberMedium86Meeting Rooms FeasibilityEasy87Merge Overlapping IntervalsMedium88Insert IntervalMedium89Remove Covered IntervalsMedium90Minimum Meeting RoomsMedium91Fewest Arrows for BalloonsMedium92Wiggle SortMediumBinary Search0 / 1515⌄
ProblemDifficulty
93Linear Search in a Sorted ArrayFreeEasy94Binary SearchFreeEasy95Search Insert PositionFreeEasy96First Bad VersionFreeEasy97Find First and Last Position in Sorted ArrayFreeMedium105Magic IndexEasy106Search a 2D MatrixMedium98Search in Rotated Sorted ArrayMedium99Find Minimum in Rotated Sorted ArrayMedium100Sqrt(x)Easy101Koko Eating BananasMedium102Capacity to Ship Packages Within D DaysMedium757Certify a Cut Across Two Sorted ArraysMedium103Kth Merged ElementHard104Median of Two Sorted ArraysHardTwo Pointers0 / 2525⌄
ProblemDifficulty
107Two Sum in Sorted ArrayEasy108Unique Two Sum PairsMedium109Closest Pair SumMedium110Count Pairs Under TargetMedium111Count Pairs Over TargetMedium112Pair Sums in RangeMedium113Smallest Difference Across ArraysMedium114Merge Sorted ArraysEasy58Shared Sorted ValuesEasy115Cross-Array Two SumMedium116Backward In-Place MergeEasy117Remove Duplicates Sorted ArrayEasy118At Most Two DuplicatesMedium119Move ZeroesEasy120Sort Array By ParityEasy121Sort ColorsMedium122Squares of Sorted ArrayEasy123Container With Most WaterMedium124Trapping Rain WaterHard125Three Sum Unique TripletsMedium126Three Sum ClosestMedium127Count Triplets Below TargetMedium128Four Sum Unique QuadrupletsMedium129Backspace String CompareMedium133Sub SortMediumStacks and Queues0 / 2626⌄
ProblemDifficulty
134Bracket MatcherMedium135Validate ParenthesesEasy43Valid ParenthesesEasy742Report Matched Parenthesis IndicesEasy44Longest Valid ParenthesesHard136Minimum Add for Valid ParenthesesMedium137Minimum Remove for Valid ParenthesesMedium148Baseball GameEasy138Evaluate Reverse Polish NotationMedium149Score of ParenthesesMedium139Basic CalculatorHard141Nested Ternary EvaluatorMedium142Decode Repetition StringMedium140Simplify Unix PathMedium150Folder Navigation LogEasy145Remove K Adjacent DuplicatesMedium144Asteroid CollisionMedium143Prices After DiscountsEasy146Smallest Subsequence of Distinct CharactersMedium147Exclusive Time of FunctionsMedium154Moving Average from Data StreamEasy155Recent Request CounterEasy156First Nonrepeating Character StreamMedium151Ticket Queue TimingEasy152Students Left Without LunchEasy153Dota2 SenateMediumLinked Lists0 / 2020⌄
ProblemDifficulty
669Length of a Linked ListEasy670Sum of a Linked ListEasy671Value at Position NEasy672Largest Value in a ListEasy673Append a NodeEasy674Insert Before a PositionMedium675Delete the First MatchMedium676Drop Sorted DuplicatesMedium677Reverse a Linked ListMedium678Middle of the ListMedium130Linked List CycleEasy679N-th Node From the EndMedium680Remove N-th From the EndMedium686Merge Two Sorted ListsMedium681Is the List a Palindrome?Medium682Partition Around a ValueMedium683Group Odd and Even PositionsMedium684Swap Every Two NodesMedium685Rotate the List RightMedium687Add Two NumbersHardTrees and Binary Search Trees0 / 1919⌄
ProblemDifficulty
689How Many NodesEasy691Sum of All NodesEasy690Height of the TreeEasy692Count the LeavesEasy688In-Order ValuesEasy158Level Order with QueueMedium693Values by LevelMedium694Right-Side ViewMedium695Is It Height-Balanced?Medium697Invert a Binary TreeMedium696Symmetric Tree?Medium698Path Sum Exists?Medium700Search a BSTEasy704Insert Into a BSTMedium699Valid Binary Search Tree?Medium701Range Sum of a BSTMedium702K-th Smallest in a BSTMedium703Lowest Common Ancestor in a BSTMedium705Sorted Array to Balanced BSTHardRecursion and Backtracking0 / 99⌄
Monotonic Stacks0 / 1515⌄
ProblemDifficulty
743First Greater Position to the RightMedium168Next Greater Element IEasy170Daily TemperaturesMedium169Next Greater Element CircularMedium172Stock SpanMedium744Nearest Smaller BarsEasy173Largest Rectangle in HistogramHard174Maximal Rectangle via HistogramHard745Count Intervals Owned by Each MinimumEasy175Sum of Subarray MinimumsMedium176Sum of Subarray RangesMedium177Remove K DigitsMedium178Create Maximum NumberHard179132 PatternMedium180Car FleetMediumHeaps and Priority Queues0 / 2020⌄
ProblemDifficulty
182Kth Largest ElementMedium181Last Stone WeightEasy183Kth Largest in a StreamEasy184K Closest PointsMedium185Top K Frequent WordsMedium186Merge K Sorted ArraysMedium187Kth Smallest in a Sorted MatrixMedium188Find K Pairs with Smallest SumsMedium189Smallest Range Covering K ListsHard746Keep Two Sorted HalvesMedium190Find Median from Data StreamHard191Sliding Window MedianHard192Smallest Number in Infinite SetMedium198Seat Reservation ManagerMedium193Minimum Cost to Connect SticksMedium194Task SchedulerMedium195Reorganize StringMedium196Per-Task Cooldown Policy SimulationMedium197IPO Capital MaximizationHard199Twitter Feed DesignHardSliding Window0 / 2525⌄
ProblemDifficulty
202Maximum Average SubarrayEasy203Vowels per WindowMedium204Count Fixed-Length Target WindowsEasy200Defuse the BombEasy205Distinct Count per WindowMedium201Distinct Window Max SumMedium206Permutation in StringMedium218Find All Anagram StartsMedium207Longest Substring Without RepeatsMedium208Fruit Into BasketsMedium210Frequency at Most KMedium211Longest Ones After K FlipsMedium747Keep Only Future Maximum CandidatesEasy240Sliding Window MaximumHard748Spread of Each Fixed WindowEasy242Longest Subarray Max-Min Within LimitHard209Longest Repeating Character ReplacementMedium212Subarrays with K DistinctHard213Binary Subarrays to GoalMedium214Shortest Sum-at-Least WindowMedium215Count Product Below KMedium216Minimum Window SubstringHard219Longest Window within BudgetHard217Minimum Window SubsequenceHard222Shortest K-Sum SubarrayHardSubarrays and Prefix Sums0 / 2020⌄
ProblemDifficulty
220Left and Right Sum DifferencesEasy221Immutable Range Sum QueriesEasy223Pivot IndexEasy749Count Target-Sum Intervals Ending HereEasy225Count Subarrays Sum KMedium226Longest Subarray Sum KMedium227Subarray Sum Divisible by KMedium228Continuous Multiple of KMedium229Balanced Zeros and OnesMedium230Subarrays with K OddsMedium224Range Addition ArrayMedium238Corporate Flight BookingsMedium231Maximum Subarray SumMedium232Maximum Circular SubarrayMedium233Maximum Product SubarrayMedium2352D Prefix Sum QueriesMedium236Count Submatrices Sum TargetHard237Maximum Sum Rectangle No Larger Than KHard234Count Range SumHard239Median-K Subarray CountHardGreedy Algorithms0 / 1818⌄
ProblemDifficulty
243Assign CookiesEasy244Boats to Save PeopleMedium247Can Place FlowersMedium246Lemonade ChangeEasy245Bag of TokensMedium249Jump GameMedium250Jump Game IIMedium251Non-overlapping IntervalsMedium252Partition LabelsMedium750Pack Words into LinesEasy751Justify One Complete LineEasy421Text JustificationHard253Candy DistributionHard729Minimum Number of Increments on Subarrays to Form a Target ArrayHard248Gas Station CircuitMedium254Queue Reconstruction by HeightMedium255Stack-Robot Smallest StringMedium256Maximum Average Pass RatioMediumGraphs I — Fundamentals0 / 1313⌄
ProblemDifficulty
258Find Center of Star GraphEasy259Reachability Between VerticesEasy263Keys and RoomsMedium257Uniform-Edge Shortest ReachMedium261Count Connected ComponentsMedium262Count Unreachable Vertex PairsMedium264Graph Valid TreeMedium314Minimum Height Tree RootsMedium265Clone GraphMedium260All Paths from Source to TargetMedium293Is Graph BipartiteMedium294Possible BipartitionMedium295Evaluate DivisionMediumGraphs II — Grid Graphs0 / 1414⌄
ProblemDifficulty
266Number of IslandsMedium157Iterative Flood FillEasy268Maximum Island AreaMedium269Island PerimeterEasy270Number of Distinct IslandsMedium271Surrounded RegionsMedium272Count Closed IslandsMedium273Number of EnclavesMedium274Pacific Atlantic Water FlowMedium275Shortest BridgeMedium276Making a Large IslandHard267Word SearchMedium301Jump Game IIIMedium302The MazeMediumGraphs III — Search and Applications0 / 2323⌄
ProblemDifficulty
278Shortest Path in Binary MatrixMedium279Nearest Exit from MazeMedium277Toroidal Nearest EnemyEasy281Rotting OrangesMedium28201 Matrix DistancesMedium283Walls and GatesMedium284Farthest Water from LandMedium285Shortest Distance from All BuildingsHard288Minimum Genetic MutationMedium289Open the LockMedium290Snakes and LaddersMedium286Word Ladder LengthHard287Word Ladder PathsHard291Bus RoutesHard298Detonate Maximum BombsMedium296Shortest Alternating PathsMedium764Reach a Grid Goal with an Obstacle BudgetMedium280Shortest Path with Obstacle EliminationsHard131Circular Array LoopMedium297Minimum Edge Reversals to Reach All NodesMedium765Follow a Forced Edge TrailEasy299Valid Arrangement of PairsHard300Reconstruct ItineraryHardTopological Sort0 / 1313⌄
ProblemDifficulty
303Build OrderMedium304Course Schedule FeasibilityMedium292Course ScheduleMedium305Course Schedule OrderMedium306Alien DictionaryHard307Sequence ReconstructionMedium310Recipes from SuppliesMedium308Minimum SemestersMedium309Course Duration Critical PathHard313Find All Ancestors in DAGMedium311Largest Color Value in Directed GraphHard312Eventual Safe NodesMedium315Sort Items by GroupsHardDynamic Programming I — Foundations0 / 2121⌄
ProblemDifficulty
316Fibonacci NumberEasy317Tribonacci NumberEasy318Climbing StairsEasy319Custom-Step Stair ClimbMedium320Min Cost Climbing StairsEasy321Robot in a GridMedium323House RobberMedium324House Robber CircularMedium325Delete and EarnMedium326House Robber TreeMedium327Decode WaysMedium759Count Valid Wildcard TokensEasy328Decode Ways with WildcardsHard329Word BreakMedium330Word Break IIHard331Coin Change MinimumMedium334Perfect SquaresMedium332Coin Change CombinationsMedium333Combination Sum IVMedium758Tile a Two-Row Board with DominoesMedium322Domino and Tromino TilingMediumDynamic Programming II — Grid DP0 / 1111⌄
ProblemDifficulty
341Unique PathsMedium342Unique Paths with ObstaclesMedium344Minimum Path SumMedium345Minimum Falling Path SumMedium346Triangle Minimum TotalMedium347Minimum Survival HealthHard348Maximal SquareMedium349Count Square SubmatricesMedium350Count Submatrices With All OnesMedium351Longest Increasing Path MatrixHard352Two-Robot Cherry HarvestHardDynamic Programming III — Strings and Palindromes0 / 1515⌄
ProblemDifficulty
353Longest Common SubsequenceMedium354Reconstruct the Longest Common SubsequenceMedium358Shortest Common SupersequenceHard355Longest Common SubstringMedium356Extract the Longest Common SubstringMedium357Distinct SubsequencesHard359Edit DistanceHard360Interleaving StringMedium363Count Palindromic SubstringsMedium364Longest Palindromic SubstringMedium361Longest Palindromic SubsequenceMedium362Minimum Insertions PalindromeMedium366Partition String into PalindromesMedium365Palindrome Partition Minimum CutsHard367Palindrome Partition IIIHardDynamic Programming IV — Knapsack, Intervals and Games0 / 1717⌄
ProblemDifficulty
335Partition Equal Subset SumMedium336Last Stone Weight IIMedium337Target Sum WaysMedium338Ones and ZeroesMedium340Profitable SchemesHard760Record a Growing Used SetEasy339Partition to K Equal SubsetsHard343Unique Paths IIIHard761Compare Two Matrix Multiplication OrdersEasy368Matrix Chain MultiplicationHard369Minimum Cost Cut StickHard370Burst BalloonsHard371Boolean EvaluationHard372Stone GameMedium373Predict the WinnerMedium374Stone Game IIHard375Pizza SlicesHardDynamic Programming V — Sequences, Scheduling and Stocks0 / 2424⌄
ProblemDifficulty
376Longest Increasing SubsequenceMedium752Best Sum Ending Here with Bounded JumpsMedium241Constrained Subsequence SumHard377Count Longest Increasing SubsequencesMedium378Russian Doll EnvelopesHard379Largest Divisible SubsetMedium381Arithmetic SlicesMedium380Longest Arithmetic SubsequenceMedium382Longest Fibonacci-like SubsequenceMedium384Maximum Length Pair ChainMedium383Maximum Profit Job SchedulingHard385Partition Array for Maximum SumMedium386Minimum Difficulty Job ScheduleHard387Split Array Largest SumHard388Rod CuttingMedium762Choose a Trial by Its Worst OutcomeEasy389Egg DropHard390Super Egg DropHard763Track Legal Single-Share ActionsEasy391Best Time to Buy and Sell StockEasy392Best Time to Buy and Sell Stock IIMedium393Best Time to Buy and Sell Stock with CooldownMedium394Best Time to Buy and Sell Stock with Transaction FeeMedium395Best Time to Buy and Sell Stock IVHardDynamic Programming VI — State Machines, Trees and Patterns0 / 1313⌄
ProblemDifficulty
396Paint HouseMedium397Paint House K ColorsHard399Tree DiameterMedium400Maximum Path Sum TreeHard398Binary Tree CamerasHard401Paths with SumMedium402Sum of Distances in TreeHard403Count Vowel PermutationsMedium404Knight DialerMedium405Attendance Record IIHard407Wildcard MatchingHard406Regex MatchingHard408Stack of BoxesHard