Coding interview prep

200 algorithms to pass any tech interview

You know the feeling: the whiteboard goes blank, the clock is ticking, and one tricky question decides everything. Hireo gives you a structured path through the patterns that actually show up in interviews, so you walk in prepared, not panicking.

See all 200 problems

200 problems

11 algorithm categories

EN + PT-BR

Lifetime access

Special offer-50%

One payment. Full access.

Own the library forever

No subscription. Pay once and keep practicing for as long as you need.

Promotional price

Limited time

-50%

Was $79

$39One-time payment

Lifetime access

You save $40

Less than a single algo coaching session. Yours forever.

  • All 200 algorithm problems
  • Hints and optimal solutions
  • In-browser editor and test runner (JavaScript & Python)
  • Bilingual EN / PT-BR content
  • Progress saved to your account

Secure Stripe checkout. Instant access, no subscription.

Built for the interview that changes your career

Big tech interviews are not about memorizing trivia. They test whether you can break a problem down, choose the right approach, and communicate clearly while you code.

We curated 200 original problems across Easy, Medium, Hard, and Very Hard, mirroring the depth you need for companies like Google, Meta, Amazon, and strong startups. Each one includes sample cases, hidden tests, progressive hints, and a full optimal solution with complexity analysis.

Practice in a real IDE in your browser: JavaScript or Python. Run against tests instantly. Reveal hints when you are stuck. Study the solution when you are ready to learn, not when you are guessing.

The full curriculum

Every problem is categorized by topic and difficulty so you always know what to practice next.

Easy

31

Two Number Sum

Arrays

Validate Subsequence

Arrays

Sorted Squared Array

Arrays

Tournament Winner

Arrays

Non-Constructible Change

Arrays

Palindrome Check

Strings

Caesar Cipher Encryptor

Strings

First Non-Repeating Character

Strings

Nth Fibonacci

Recursion

Product Sum

Recursion

Binary Search

Searching

Find Three Largest Numbers

Searching

Bubble Sort

Sorting

Insertion Sort

Sorting

Minimum Waiting Time

Greedy Algorithms

Class Photos

Greedy Algorithms

Tandem Bicycle

Greedy Algorithms

Monotonic Array

Arrays

Transpose Matrix

Arrays

Running Sum

Arrays

Anagram Check

Strings

Reverse Words

Strings

Most Frequent Character

Strings

Factorial

Recursion

Selection Sort

Sorting

Find Closest Value in BST

Binary Search Trees

Node Depths

Binary Trees

Depth-First Search

Graphs

Remove Duplicates From Linked List

Linked Lists

Generate Document

Strings

Power of Two

Recursion

Medium

73

Three Number Sum

Arrays

Smallest Difference

Arrays

Move Element To End

Arrays

Array Of Products

Arrays

First Duplicate Value

Arrays

Merge Overlapping Intervals

Arrays

Spiral Traverse

Arrays

Longest Peak

Arrays

Group Anagrams

Strings

Longest Substring Without Duplication

Strings

Powerset

Recursion

Permutations

Recursion

Quick Sort

Sorting

Merge Sort

Sorting

Validate BST

Binary Search Trees

Invert Binary Tree

Binary Trees

Branch Sums

Binary Trees

Breadth-First Search

Graphs

Reverse Linked List

Linked Lists

Kadane's Algorithm

Dynamic Programming

Max Subset Sum No Adjacent

Dynamic Programming

Number of Ways to Make Change

Dynamic Programming

Min Number of Coins for Change

Dynamic Programming

Largest Range

Arrays

Subarray Sort

Arrays

Majority Element

Arrays

Single Cycle Check

Arrays

Run-Length Encoding

Strings

Search For Range

Searching

Shifted Binary Search

Searching

Quickselect

Searching

Three Number Sort

Sorting

River Sizes

Graphs

Merge Linked Lists

Linked Lists

Remove Kth Node From End

Linked Lists

Min Height BST

Binary Search Trees

Find Kth Largest Value in BST

Binary Search Trees

Height Balanced Binary Tree

Binary Trees

Minimum Characters For Words

Strings

Valid IP Addresses

Strings

Longest Palindromic Substring

Strings

Cycle In Graph

Graphs

Sum of Linked Lists

Linked Lists

Staircase Traversal

Dynamic Programming

Number of Ways to Traverse Graph

Dynamic Programming

Missing Numbers

Arrays

Next Greater Element

Arrays

Valid Starting City

Arrays

Zero Sum Subarray

Arrays

Semordnilap

Strings

Common Characters

Strings

Reverse Words In String

Strings

Balanced Brackets

Strings

One Edit

Strings

Task Assignment

Greedy Algorithms

Min Number Of Jumps

Dynamic Programming

Search In Sorted Matrix

Searching

Phone Number Mnemonics

Recursion

Heap Sort

Sorting

BST Traversal

Binary Search Trees

Tree Level Order Traversal

Binary Trees

Youngest Common Ancestor

Graphs

Two-Colorable

Graphs

Middle Node

Linked Lists

Sunset Views

Arrays

Best Seat

Arrays

Minimum Area Rectangle

Arrays

Merge Sorted Arrays

Arrays

Sort Stack

Recursion

Generate Div Tags

Recursion

Optimal Freelancing

Greedy Algorithms

Suffix Trie Construction

Strings

Reverse Polish Notation

Arrays

Hard

58

Levenshtein Distance

Dynamic Programming

Max Sum Increasing Subsequence

Dynamic Programming

Longest Common Subsequence

Dynamic Programming

Binary Tree Diameter

Binary Trees

Knapsack Problem

Dynamic Programming

Four Number Sum

Arrays

Min Rewards

Arrays

Water Area

Arrays

Apartment Hunting

Arrays

Calendar Matching

Arrays

Pattern Matcher

Strings

Smallest Substring Containing

Strings

Knuth Morris Pratt Algorithm

Strings

Interweaving Strings

Dynamic Programming

Longest Increasing Subsequence

Dynamic Programming

Max Profit With K Transactions

Dynamic Programming

Disk Stacking

Dynamic Programming

Numbers In Pi

Dynamic Programming

Maximum Sum Submatrix

Dynamic Programming

Dice Throws

Dynamic Programming

Longest String Chain

Dynamic Programming

Reconstruct BST

Binary Search Trees

Same BSTs

Binary Search Trees

Max Path Sum In Binary Tree

Binary Trees

Find Nodes Distance K

Binary Trees

Remove Islands

Graphs

Minimum Passes Of Matrix

Graphs

Linked List Palindrome

Linked Lists

Shift Linked List

Linked Lists

Zip Linked List

Linked Lists

Zigzag Traverse

Arrays

Underscorify Substring

Strings

Index Equals Value

Searching

Radix Sort

Sorting

Sweet And Savory

Arrays

Container With Most Water

Arrays

Longest Balanced Substring

Strings

Lowest Common Manager

Recursion

Best Digits

Greedy Algorithms

Can Jump

Greedy Algorithms

Ambiguous Measurements

Dynamic Programming

Maximize Expression

Dynamic Programming

Juice Bottling

Dynamic Programming

Palindrome Partitioning Min Cuts

Dynamic Programming

Word Break

Dynamic Programming

Decode Ways

Dynamic Programming

Validate Three Nodes

Binary Search Trees

All Kinds of Node Depths

Binary Trees

Compare Leaf Traversal

Binary Trees

Symmetrical Tree

Binary Trees

Split Binary Tree

Binary Trees

Evaluate Expression Tree

Binary Trees

Largest Island

Graphs

Kruskal's Algorithm

Graphs

Word Search

Graphs

Node Swap

Linked Lists

Rearrange Linked List

Linked Lists

Flatten Binary Tree

Binary Trees

Very Hard

38

Largest Rectangle Under Skyline

Arrays

Shorten Path

Strings

Count Inversions

Arrays

Number of Binary Tree Topologies

Dynamic Programming

Non-Attacking Queens

Recursion

Knight Connection

Graphs

Square of Zeroes

Arrays

Airport Connections

Graphs

Boggle Board

Graphs

Dijkstra's Algorithm

Graphs

Right Smaller Than

Arrays

Multi String Search

Strings

Longest Common Substring

Dynamic Programming

Burst Balloons

Dynamic Programming

Maximal Square

Dynamic Programming

Maximal Rectangle

Dynamic Programming

Longest Palindromic Subsequence

Dynamic Programming

Topological Sort

Graphs

A* Algorithm

Graphs

Two-Edge-Connected Graph

Graphs

Count Squares

Arrays

Rectangle Mania

Arrays

Solve Sudoku

Recursion

Regular Expression Matching

Dynamic Programming

Wildcard Matching

Dynamic Programming

Word Ladder

Graphs

Prim's Algorithm

Graphs

Combination Sum

Recursion

Max Points on a Line

Arrays

Trapping Rain Water 2D

Arrays

Sliding Window Maximum

Arrays

Median of Two Sorted Arrays

Arrays

Merge K Sorted Lists

Linked Lists

Basic Calculator

Strings

Text Justification

Strings

Remove Invalid Parentheses

Strings

Longest Consecutive Sequence

Arrays

Max Sum of Three Non-Overlapping Subarrays

Arrays

Everything you need to get interview-ready

In-browser IDE

Write JavaScript or Python, run sample tests, and submit against hidden cases without leaving the page.

Hints that teach

Reveal guidance step by step when you are stuck, so you learn the pattern instead of copying an answer.

Full explanations

See the optimal approach, time and space complexity, and a clear walkthrough after you try.

English and Portuguese

Every prompt, hint, and explanation is available in natural Brazilian Portuguese and English.

Track your progress

Mark problems as solved, pick up where you left off, and build momentum over time.

How it works

01

Choose a problem

Filter by category, difficulty, or status and start with what matches your level.

02

Code and test

Pick JavaScript or Python, use Run for visible tests, and Submit when you are ready for the full evaluation.

03

Learn and repeat

Use hints and solutions to solidify patterns, then move to the next challenge.

Questions

Is this a subscription?

No. You pay once and get lifetime access to the full library.

Which language do I code in?

The workspace supports JavaScript and Python across all 200 problems. Switch languages anytime. Your code is saved separately for each. Every problem includes reference solutions in both languages.

Are the problems copied from other platforms?

No. They are original problems written for Hireo, organized to cover the same topics and difficulty mix you need for real interviews.

When do I get access?

Immediately after checkout. You will be redirected to the practice catalog.

Can I use this if I am not in Brazil?

Yes. English speakers pay in USD. Brazilian users see pricing in BRL.

Own the library forever

No subscription. Pay once and keep practicing for as long as you need.

Special offer-50%
$79$39

One-time payment, Lifetime access

You save $40