In-browser IDE
Write JavaScript or Python, run sample tests, and submit against hidden cases without leaving the page.
Coding interview prep
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.
200 problems
11 algorithm categories
EN + PT-BR
Lifetime access
One payment. Full access.
No subscription. Pay once and keep practicing for as long as you need.
Promotional price
Limited time
Was $79
Lifetime access
Less than a single algo coaching session. Yours forever.
Secure Stripe checkout. Instant access, no subscription.
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.
Every problem is categorized by topic and difficulty so you always know what to practice next.
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
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
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
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
Write JavaScript or Python, run sample tests, and submit against hidden cases without leaving the page.
Reveal guidance step by step when you are stuck, so you learn the pattern instead of copying an answer.
See the optimal approach, time and space complexity, and a clear walkthrough after you try.
Every prompt, hint, and explanation is available in natural Brazilian Portuguese and English.
Mark problems as solved, pick up where you left off, and build momentum over time.
01
Filter by category, difficulty, or status and start with what matches your level.
02
Pick JavaScript or Python, use Run for visible tests, and Submit when you are ready for the full evaluation.
03
Use hints and solutions to solidify patterns, then move to the next challenge.
No. You pay once and get lifetime access to the full library.
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.
No. They are original problems written for Hireo, organized to cover the same topics and difficulty mix you need for real interviews.
Immediately after checkout. You will be redirected to the practice catalog.
Yes. English speakers pay in USD. Brazilian users see pricing in BRL.
No subscription. Pay once and keep practicing for as long as you need.
One-time payment, Lifetime access
You save $40