GitPedia

HackerRank

HackerRank solutions in Java/JS/Python/C++/C#

From RyanFehr·Updated June 11, 2026·View on GitHub·

If you are interested in helping or have a solution in a different language feel free to make a pull request. The project is written primarily in Java, distributed under the MIT License license, first published in 2016. It has gained significant community traction with 1,333 stars and 689 forks on GitHub. Key topics include: algorithms, cpp, csharp, data-structures, hackerrank.

<p align="center"> <a href="https://www.hackerrank.com/ryanfehr18"><img src="https://cloud.githubusercontent.com/assets/19765741/25342064/d17a563c-28d8-11e7-83fc-763d4ab4820a.jpg" ></a> </p> <p align="center"> Solutions to problems on HackerRank. </p> <p align="center"> Check out HackerRank's new format <a href="./README_V2.md">here</a> </p> <p align="center"> If you are interested in helping or have a solution in a different language feel free to make a pull request. </p> <p align="center"> <img src="https://img.shields.io/badge/Problems%20Solved-153-brightgreen.svg"> <img src="https://img.shields.io/badge/Language-Java/JS/Python/C++/CSharp-orange.svg"> <img src="https://img.shields.io/badge/Latest%20Update-06/21/2018-brightgreen.svg"> </p>

Algorithms AlgorithmsPoints

DataStructures DataStructuresPoints

Mathematics MathematicsPoints

  • Fundamentals
  • Number Theory
  • Combinatorics
  • Algebra
  • Geometry
  • Probability
  • Linear Algebra Foundations

Java JavaPoints

Warmup

#TitleSolutionTimeSpaceDifficultyPointsNote
Solve Me First<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy1
Simple Array Sum<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy10
Compare the Triplets<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy10
A Very Big Sum<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy10
Diagonal Difference<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy10
Plus Minus<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy10
Staircase<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy10
Mini-Max Sum<ul><li>Java</li><li>C#</li><ul>O(1)O(1)Easy10
Time Conversion<ul><li>Java</li><li>C#</li><ul>O(1)O(1)Easy15
Birthday Cake Candles<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy10

Implementation

#TitleSolutionTimeSpaceDifficultyPointsNote
Grading Students<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(1)Easy10
Apple and Orange<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n+m)O(1)Easy10
Kangaroo<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy10
Between Two Sets<ul><li>Java</li> <li>C#</li><ul>O(x(n+m))O(1)Easy10x=(max(m) - min(n))/min(n)
Divisible Sum Pairs<ul><li>Java</li><li>C#</li><ul>O(n^2)O(1)Easy10
Birthday Chocolate<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy10
Breaking the Records<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy10
Migratory Birds<ul><li>Java</li> <li>JS</li><li>C#</li><ul>O(n)O(1)Easy10
Day of the Programmer<ul><li>Java</li><li>C#</li><ul>O(1)O(1)Easy15
Bon Appetit<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy10
Sock Merchant<ul><li>Java</li> <li>C#</li><ul>O(n)O(n)Easy10
Drawing Book<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy10
Counting Valleys<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(1)Easy15
Cats and a Mouse<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy15
Electronics Shop<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n log (n))O(1)Easy15n = m+n
Picking Numbers<ul><li>Java</li> <li>C#</li><ul>O(n)O(n)Easy20
Climbing the Leaderboard<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n+m)(n)Easy20
The Hurdle Race<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy15
Designer PDF Viewer<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(n)Easy20
Forming a Magic Square<ul><li>Java</li><ul>O(1)O(1)Easy20
Utopian Tree<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(1)Easy20
Angry Professor<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(1)Easy20
Beautiful Days at the Movies<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(1)Easy15
Viral Advertising<ul><li>Java</li> <li>JS</li> <li>C#</li><ul>O(n)O(1)Easy15
Save the Prisoner!<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy15
Circular Array Rotation<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy20
Sequence Equation<ul><li>Java</li> <li>C#</li><ul>O(n)O(n)Easy20
Jumping on the Clouds: Revisited<ul><li>Java</li> <li>C#</li><ul>O(n)O(n)Easy15
Find Digits<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Easy25
Extra Long Factorials<ul><li>Java</li> <li>C#</li><ul>O(n)O(1)Medium20
Append and Delete<ul><li>Java</li><ul>O(n)O(1)Easy20
Sherlock and Squares<ul><li>Java</li><ul>O(n)O(1)Easy20
Library Fine<ul><li>Java</li> <li>C#</li><ul>O(1)O(1)Easy15
Cut the sticks<ul><li>Java</li> <li>C#</li><ul>O(n log(n))O(n)Easy25
Non-Divisible Subset<ul><li>Java</li><ul>O(n)O(n)Medium20
Repeated String<ul><li>Java</li> <li>C#</li><ul>O(n)O(n)Easy20
Jumping on the Clouds<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy20
Equalize the Array<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy20
Queen's Attack II<ul><li>Java</li><ul>O(k)O(1)Medium30
ACM ICPC Team<ul><li>Java</li><ul>O(n^3)O(n)Easy25
Taum and B'day<ul><li>Java</li><li>C#</li><ul>O(1)O(1)Easy25
Organizing Containers of Balls<ul><li>Java</li><ul>O(n^2)O(n^2)Medium30
Encryption<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Medium30
Bigger is Greater<ul><li>Java</li><ul>O(n)O(n)Medium35
Modified Kaprekar Numbers<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy30
Minimum Distances<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy20
Beautiful Triplets<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy20
Strings: Making Anagrams<ul><li>Java</li><ul>O(|a|+|b|)O(1)Easy30
The Time in Words<ul><li>Java</li><li>C#</li><ul>O(1)O(1)Medium25
Chocolate Feast<ul><li>Java</li><li>C#</li><ul>O(log(n))O(1)Easy25Base of logarithmic time complexity is m
Service Lane<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy20
Lisa's Workbook<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy25
Flatland Space Stations<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy25
Fair Rations<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy25
Cavity Map<ul><li>Java</li><li>C#</li><ul>O(n^2)O(n^2)Easy30
Manasa and Stones<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy30
The Grid Search<ul><li>Java</li><ul>O(n)O(n)Medium30n = len(word)
Happy Ladybugs<ul><li>Java</li><ul>O(n)O(n)Easy30
Strange Counter<ul><li>Java</li><ul>O(n)O(1)Easy30n = t
Absolute Permuation<ul><li>Java</li><ul>O(n)O(n)Medium40
The Bomberman Game<ul><li>Java</li><ul>O(n*m)O(n*m)Medium40
Ema's Supercomputer<ul><li>Java</li></ul>Medium40
Larry's Array<ul><li>Java</li></ul>Medium40
Almost Sorted<ul><li>Java</li></ul>Medium50
Matrix Layer Rotation<ul><li>Python3</li><ul>O(n*m)O(n*m)Hard80
Consecutive 1s in Binary Numbers<ul><li>Java</li><ul>O(n)O(1)Easy30
Nested Logic<ul><li>Java</li><ul>O(1)O(1)Easy40
Bitwise AND<ul><li>Java</li><ul>O(1)O(1)Easy20

Strings

#TitleSolutionTimeSpaceDifficultyPointsNote
Super Reduced String<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy10
camelCase<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy15
Strong Password<ul><li>C#</li><ul>O(n)O(1)Easy15
Two Characters<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy15
Caesar Cipher<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy15
Caesar Cipher: Encryption<ul><li>Java</li><ul>O(n)O(n)Easy40
Mars Exploration<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy15
HackerRank in a String!<ul><li>Java</li> <li>JS</li><li>C#</li><ul>O(n)O(1)Easy20
Pangrams<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy20
Weighted Uniform Strings<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy20
Separate the Numbers<ul><li>Java</li><li>C#</li></ul>O(n)O(n)Easy20
Funny String<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy25
Gemstones<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy20
Alternating Characters<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy20
Beautiful Binary String<ul><li>Java</li><ul>O(n)O(1)Easy20
The Love-Letter Mystery<ul><li>Java</li><ul>O(n)O(1)Easy20
Determining DNA Health<ul><li>Java</li></ul>Hard50
Palindrome Index<ul><li>Java</li><ul>O(n)O(1)Easy25
Anagram<ul><li>Java</li><ul>O(n)O(1)Easy25
Making Anagrams<ul><li>Java</li><ul>O(n)O(n)Easy30
Game of Thrones - I<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy30
Two Strings<ul><li>Java</li><li>C#</li><ul>O(|a| + |b|)O(1)Easy25a and b are lengths of the input strings
String Construction<ul><li>Java</li><ul>O(n)O(n)Easy25
Sherlock and Valid String<ul><li>Java</li><ul>O(n)O(n)Hard100
Richie Rich<ul><li>Java</li> <li>Python3</li><ul>O(n)O(n)Medium30
Sherlock and Anagrams<ul><li>Java</li></ul>Medium50
Common Child<ul><li>Java</li></ul>Hard60
Bear and Steady Gene<ul><li>Java</li></ul>Medium50
Morgan and a String<ul><li>Java</li><ul>O((|a|+|b|)^2)O(|a| + |b|)Expert100
Count Strings<ul><li>Java</li></ul>Hard80
String Function Calculation<ul><li>Java</li></ul>Advanced80
Build a Palindrome<ul><li>Java</li></ul>Advanced80
Build a String<ul><li>Java</li></ul>Hard80
Gridland Provinces<ul><li>Java</li></ul>Hard80
Ashton and String<ul><li>Java</li></ul>Advanced100
String Similarity<ul><li>Java</li></ul>Expert100
Super Functional Strings<ul><li>Java</li></ul>Advanced80
Circular Palindromes<ul><li>Java</li></ul>Advanced120
Similar Strings<ul><li>Java</li></ul>Advanced85
Save Humanity<ul><li>Java</li></ul>Expert100
Find Strings<ul><li>Java</li></ul>Expert100
Palindromic Border<ul><li>Java</li></ul>Expert100
Two Two<ul><li>Java</li></ul>Advanced150
Two Strings Game<ul><li>Java</li></ul>Expert100
Letter Islands<ul><li>Java</li></ul>Expert100
Pseudo-Isomorphic Substrings<ul><li>Java</li></ul>Expert100
How Many Substrings?<ul><li>Java</li></ul>Expert100

Sorting

#TitleSolutionTimeSpaceDifficultyPointsNote
Intro to Tutorial Challenges<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy30
Insertion Sort - Part 1<ul><li>Java</li><li>C#</li><ul>O(n)O(1)Easy30
Insertion Sort - Part 2<ul><li>Java</li><li>C#</li><ul>O(n^2)O(1)Easy30
Correctness and the Loop Invariant<ul><li>Java</li><li>C#</li><ul>O(n^2)O(1)Easy30
Running Time of Algorithms<ul><li>Java</li><li>C#</li><ul>O(n^2)O(1)Easy30
Quicksort 1 - Partition<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy10
Quicksort 2 - Sorting<ul><li>Java</li><li>C#</li><ul>O(n^2)O(n)Easy30
Quicksort In-Place<ul><li>Java</li><ul>O(n^2)O(log(n))Medium35
Running Time of Quicksort<ul><li>Java</li><ul>O(n log(n))O(log(n))Easy35
Counting Sort 1<ul><li>Java</li><li>C#</li><ul>O(n+k)O(k)Easy30value of k in this problem is 100
Counting Sort 2<ul><li>Java</li><li>C#</li><ul>O(n+k)O(n+k)Easy30Value of k is 100 in this problem.
Counting Sort 3<ul><li>Java</li><ul>O(n+k)O(k)Easy30
The Full Counting Sort<ul><li>Java</li><li>C#</li><ul>O(n+k)O(n+k)Medium40
Closest Numbers<ul><li>Java</li><li>C#</li><ul>O(n log(n))O(n)Easy35
Find the Median<ul><li>Java</li><li>C#</li><ul>O(n log(n))O(n)Easy35
Insertion Sort Advanced Analysis<ul><li>Java</li></ul>Advanced50
Fraudulent Activity Notifications<ul><li>Java</li><ul>O(n^2)O(n)Medium40
Lily's Homework<ul><li>Java</li><ul>O(n log(n))O(n)Medium40
Big Sorting<ul><li>Java</li><li>C#</li><ul>O(n log(n))O(n)Easy20
#TitleSolutionTimeSpaceDifficultyPointsNote
Hackerland Radio Transmitters<ul><li>JS</li><li>C#</li><ul>O(n log(n))O(n)Medium25
Ice Cream Parlor<ul><li>Java</li><li>C#</li><ul>O(n)O(n)Easy30
Binary Search: Ice Cream Parlor<ul><li>Java</li><ul>O(n)O(n)Easy35
Gridland Metro<ul><li>Java</li><li>C#</li></ul>O(k)O(k)Medium25k = number of tracks
Missing Numbers<ul><li>Java</li> <li>C++</li><li>C#</li><ul>O(n)O(n)Easy45
Minimum Loss<ul><li>Java</li><ul>O(n log(n))O(n)Medium35
KnightL on a Chessboard<ul><li>Java</li></ul>Medium35
Pairs<ul><li>Java</li> <li>C++</li><li>C#</li><ul>O(n log(n))O(n)Medium50
Sherlock and Array<ul><li>Java</li> <li>C++</li><li>C#</li><ul>O(n)O(n)Easy40
Maximum Subarray Sum<ul><li>Java</li></ul>Hard65
Connected Cells in a grid<ul><li>Java</li></ul>Medium50
Short Palindrome<ul><li>Java</li></ul>Medium40
Maximizing Mission Points<ul><li>Java</li></ul>Hard70
Count Luck<ul><li>Java</li></ul>Medium50
Cut the Tree<ul><li>Java</li></ul>Medium50
Making Candies<ul><li>Java</li></ul>Hard45
Gena Playing Hanoi<ul><li>Java</li></ul>Medium50
Beautiful Quadruples<ul><li>Java</li></ul>Medium50
Bike Racers<ul><li>Java</li></ul>Hard65
Task Scheduling<ul><li>Java</li></ul>Advanced70
Similar Pair<ul><li>Java</li></ul>Advanced70
Absolute Element Sums<ul><li>Java</li></ul>Hard70
Sorted Subsegments<ul><li>Java</li></ul>Hard80
Distant Pairs<ul><li>Java</li></ul>Expert80
King Richard's Knights<ul><li>Java</li></ul>Hard80

Graph Theory

#TitleSolutionTimeSpaceDifficultyPointsNote
Roads and Libraries<ul><li>Java</li></ul>Medium30
Synchronous Shopping<ul><li>Java</li></ul>Medium40
Crab Graphs<ul><li>Java</li></ul>Medium50
Even Tree<ul><li>Java</li></ul>Medium50
Snakes and Ladders: The Quickest Way Up<ul><li>Java</li></ul>Medium50
Subset Component<ul><li>Java</li></ul>Hard50
Journey to the Moon<ul><li>Java</li> <li>Python3</li><ul>O(n + i)O(n)Medium50
Kruskal (MST): Really Special Subtree<ul><li>Java</li></ul>Hard50
Minimum Penalty Path<ul><li>Java</li></ul>Medium50
Demanding Money<ul><li>Java</li></ul>Hard50
The Story of a Tree<ul><li>Java</li></ul>Medium50
Breadth First Search: Shortest Reach<ul><li>Java</li></ul>Medium55
The Value of Friendship<ul><li>Java</li></ul>Hard55
Clique<ul><li>Java</li></ul>Medium60
Dijkstra: Shortest Reach 2<ul><li>Java</li></ul>Hard60
Prim's (MST) : Special Subtree<ul><li>Java</li></ul>Medium60
Roads in Hackerland<ul><li>Java</li></ul>Medium60
Toll Cost Digits<ul><li>Java</li></ul>Hard60
Real Estate Broker<ul><li>Java</li></ul>Hard60
Matrix<ul><li>Java</li></ul>Hard70
Bead Ornaments<ul><li>Java</li></ul>Advanced70
Rust & Murderer<ul><li>Java</li><ul>O(n+m)O(n)Medium70
Recording Episodes<ul><li>Java</li></ul>Hard70
Kingdom Connectivity<ul><li>Java</li></ul>Hard75
Journey Scheduling<ul><li>Java</li></ul>Hard75
Floyd : City of Blinding Lights<ul><li>Java</li></ul>Hard75
Find the Path<ul><li>Java</li></ul>Hard75
Repair Roads<ul><li>Java</li></ul>Hard80
Problem solving<ul><li>Java</li></ul>Hard80
Computer Game<ul><li>Java</li></ul>Hard80
Jack goes to Rapture<ul><li>Java</li></ul>Medium80
Jim and his LAN Party<ul><li>Java</li></ul>Hard80
Jeanie's Route<ul><li>Java</li></ul>Medium80
Travel in HackerLand<ul><li>Java</li></ul>Hard80
Jogging Cats<ul><li>Java</li></ul>Advanced80
Tree Flow<ul><li>Java</li></ul>Hard80
Tripartite Matching<ul><li>Java</li></ul>Hard80
Jumping Rooks<ul><li>Java</li></ul>Advanced80
Minimum MST Graph<ul><li>Java</li></ul>Expert80
Coprime Paths<ul><li>Java</li></ul>Expert80
DAG Queries<ul><li>Java</li></ul>Expert80
Liars<ul><li>Java</li></ul>Advanced85
ByteLandianTours<ul><li>Java</li></ul>Hard90
Kth Ancestor<ul><li>Java</li></ul>Hard90
Drive<ul><li>Java</li></ul>Expert90
Road Network<ul><li>Java</li></ul>Expert90
Savita And Friends<ul><li>Java</li></ul>Hard90
Favorite sequence<ul><li>Java</li></ul>Advanced95
Quadrant Queries<ul><li>Java</li></ul>Advanced100
Going to the Office<ul><li>Java</li></ul>Expert100
Ticket<ul><li>Java</li></ul>Expert100
HackerX<ul><li>Java</li></ul>Hard100
Hacker Country<ul><li>Java</li></ul>Hard100
Travelling Salesman in a Grid<ul><li>Java</li></ul>Expert100
Huarongdao<ul><li>Java</li></ul>Expert100
Vertical Paths<ul><li>Java</li></ul>Expert100
DFS Edges<ul><li>Java</li></ul>Expert100
Tree Splitting<ul><li>Java</li></ul>Advanced100
Definite Random Walks<ul><li>Java</li></ul>Expert100
Diameter Minimization<ul><li>Java</li></ul>Expert100
Training the army<ul><li>Java</li></ul>Hard120
Alex vs Fedor<ul><li>Java</li></ul>Expert150

Greedy

#TitleSolutionTimeSpaceDifficultyPointsNote
Minimum Absolute Difference in an Array<ul><li>Java</li> <li>JS</li><li>C#</li><ul>O(n log(n))O(n)Easy15
Chief Hopper<ul><li>Java</li><ul>O(n)O(n)Hard65
Mark and Toys<ul><li>Java</li> <li>JS</li><ul>O(n log(n))O(n)Easy35
Marc's Cakewalk<ul><li>Java</li><li>C#</li><ul>O(n + k)O(k)Easy15
Grid Challenge<ul><li>Java</li><ul>O(n*(n log (n)))O(n^2)Easy20
Luck Balance<ul><li>Java</li><ul>O(n log(n))O(1)Easy20
Maximum Perimeter Triangle<ul><li>Java</li><ul>O(n log (n))O(n)Easy20
Permuting Two Arrays<ul><li>Java</li> <li>JS</li><ul>O(n log (n))O(n)Easy40
Jim and the Orders<ul><li>Java</li><ul>O(n log (n))O(n)Easy40
Equal Stacks<ul><li>Java</li><ul>O(n)O(n)Easy25
Sherlock and The Beast<ul><li>Java</li><ul>O(n)O(n)Easy30
Priyanka and Toys<ul><li>Java</li> <li>JS</li><ul>O(n log(n))O(n)Easy30
Largest Permutation<ul><li>JS</li><ul>O(n)O(n)Easy30
Beautiful Pairs<ul><li>Java</li></ul>Easy30
Yet Another Minimax Problem<ul><li>Java</li></ul>Medium20
Flipping the Matrix<ul><li>Java</li><ul>O(n^2)O(n^2)Medium30
Roads and Libraries<ul><li>Java</li></ul>Medium30
Greedy Florist<ul><li>JS</li><ul>O(n log (n))O(n)Medium35
Mark and Toys<ul><li>Java</li><ul>O(n log(n))O(n)Easy35
Max Min<ul><li>Java</li><ul>O(n log(n))O(1)Medium35
Permuting Two Arrays<ul><li>Java</li></ul>Easy40
Jim and the Orders<ul><li>Java</li></ul>Easy40
Goodland Electricity<ul><li>Java</li></ul>Medium40
Fun Game<ul><li>Java</li></ul>Medium40
Reverse Shuffle Merge<ul><li>Java</li></ul>Advanced50
Cutting Boards<ul><li>Java</li></ul>Hard60
Algorithmic Crush<ul><li>Java</li></ul>Hard60
Prim's (MST): Special Subtree<ul><li>Java</li></ul>Medium60
Accessory Collection<ul><li>Java</li></ul>Hard60
Chief Hopper<ul><li>Java</li><ul>O(n)O(n)Hard65
Sherlock and MiniMax<ul><li>Java</li></ul>Hard70
Team Formation<ul><li>Java</li></ul>Advanced70

Dynamic Programming

#TitleSolutionTimeSpaceDifficultyPointsNote
Equal<ul><li>Java</li></ul>Medium30
Cut Tree<ul><li>Java</li></ul>Medium40
Mr K marsh<ul><li>Java</li></ul>Medium40
Sam and sub-strings<ul><li>Java</li></ul>Medium40
Summing Pieces<ul><li>Java</li></ul>Medium40
Short Palindrome<ul><li>Java</li></ul>Medium40
Abbreviation<ul><li>Java</li></ul>Medium40
Fair Cut<ul><li>Java</li></ul>Medium40
Fibonacci Modified<ul><li>Java</li><ul>Medium45
Lego Blocks<ul><li>Java</li></ul>Medium50
Candies<ul><li>Java</li></ul>Medium50
Stock Maximize<ul><li>Java</li></ul>Medium50
Angry Childtren 2<ul><li>Java</li></ul>Hard50
The Maximum Subarray<ul><li>Java</li></ul>Medium50
Sherlock and Cost<ul><li>Java</li></ul>Medium50
Xor and Sum<ul><li>Java</li></ul>Medium50
Counting Special Sub-Cubes<ul><li>Java</li></ul>Medium50
Two Robots<ul><li>Java</li></ul>Medium50
Kingdom Division<ul><li>Java</li></ul>Medium50
Prime XOR<ul><li>Java</li></ul>Medium50
HackerRank City<ul><li>Java</li></ul>Medium50
Nikita and the Game<ul><li>Java</li></ul>Medium50
Prime Digit Sums<ul><li>Java</li></ul>Medium50
Mandragora Forest<ul><li>Java</li></ul>Medium50
LCS Returns<ul><li>Java</li></ul>Medium50
Grid Walking<ul><li>Java</li></ul>Medium55
Bricks Game<ul><li>Java</li></ul>Medium55
The Longest Common Subsequence<ul><li>Java</li></ul>Medium55
Substring Diff<ul><li>Java</li></ul>Medium60
Brick Tiling<ul><li>Java</li></ul>Hard60
Alien Languages<ul><li>Java</li></ul>Hard60
The Longest Increasing Subsequence<ul><li>Java</li></ul>Advanced60
The Coin Change Problem<ul><li>Python3</li><ul>O(N*M)O(N)Hard60
Knapsack<ul><li>Java</li></ul>Medium60
Sherlock's Array Merging Algorithm<ul><li>Java</li></ul>Hard60
New Year Game<ul><li>Java</li></ul>Medium60
Shashank and the Palindromic Strings<ul><li>Java</li></ul>Advanced60
Decibinary Numbers<ul><li>Java</li></ul>Hard60
Choosing White Balls<ul><li>Java</li></ul>Hard60
DP: Coin Change<ul><li>Java</li></ul>Hard60
Clues on a Binary Path<ul><li>Java</li></ul>Hard60
GCD Matrix<ul><li>Java</li></ul>Hard60
Coin on the Table<ul><li>Java</li></ul>Medium65
Interval Selection<ul><li>Java</li></ul>Medium65
Red John is Back<ul><li>Java</li></ul>Medium65
Play with words<ul><li>Java</li></ul>Medium65
Queens on Board<ul><li>Java</li></ul>Hard70
String Reduction<ul><li>Java</li></ul>Hard70
Far Vertices<ul><li>Java</li></ul>Hard70
The Indian Job<ul><li>Java</li></ul>Medium70
Hexagonal Grid<ul><li>Java</li></ul>Hard70
Longest Palindromic Subsequence<ul><li>Java</li></ul>Hard70
Turn Off the Lights<ul><li>Java</li></ul>Hard70
Tara's Beautiful Permutations<ul><li>Java</li></ul>Hard70
Two Subarrays<ul><li>Java</li></ul>Expert70
Mining<ul><li>Java</li></ul>Advanced75
The Longest Common Subsequence (LCS)<ul><li>Java</li></ul>Hard75
Points in a Plane<ul><li>Java</li></ul>Advanced80
Fairy Chess<ul><li>Java</li></ul>Advanced80
Billboards<ul><li>Java</li></ul>Advanced80
Requirement<ul><li>Java</li></ul>Advanced80
A Super Hero<ul><li>Java</li></ul>Hard80
Covering the stains<ul><li>Java</li></ul>Hard80
Superman Celebrates Diwali<ul><li>Java</li></ul>Hard80
Wet Shark and Two Subsequences<ul><li>Java</li></ul>Medium80
Zurikela's Graph<ul><li>Java</li></ul>Hard80
New Year Present<ul><li>Java</li></ul>Hard80
Suffix Rotation<ul><li>Java</li></ul>Expert80
Black and White Tree<ul><li>Java</li></ul>Hard80
Beautiful Strings<ul><li>Java</li></ul>Hard80
Longest Mod Path<ul><li>Java</li></ul>Hard80
Super Functional Strings<ul><li>Java</li></ul>Advanced80
Kitty's Calculations on a Tree<ul><li>Java</li></ul>Advanced80
Liars<ul><li>Java</li></ul>Advanced85
Dorsey Thief<ul><li>Java</li></ul>Advanced85
Swap Permutation<ul><li>Java</li></ul>Medium85
Candles Counting<ul><li>Java</li></ul>Medium85
Square Subsequences<ul><li>Java</li></ul>Hard90
Hyper Strings<ul><li>Java</li></ul>Advanced90
Unique Divide And Conquer<ul><li>Java</li></ul>Advanced90
Super Kth LIS<ul><li>Java</li></ul>Advanced90
Counting Road Networks<ul><li>Java</li></ul>Expert90
Lucky Numbers<ul><li>Java</li></ul>Expert100
Count Scorecards<ul><li>Java</li></ul>Expert100
Unfair Game<ul><li>Java</li></ul>Advanced100
Oil Well<ul><li>Java</li></ul>Hard100
Modify The Sequence<ul><li>Java</li></ul>Advanced100
Divisible Numbers<ul><li>Java</li></ul>Expert100
Ones and Twos<ul><li>Java</li></ul>Hard100
Extremum Permutations<ul><li>Java</li></ul>Medium100
Tree Pruning<ul><li>Java</li></ul>Advanced100
P-sequences<ul><li>Java</li></ul>Hard100
Best spot<ul><li>Java</li></ul>Advanced100
Find the Seed<ul><li>Java</li></ul>Advanced100
The Blacklist<ul><li>Java</li></ul>Advanced100
Police Operation<ul><li>Java</li></ul>Hard100
Road Maintenance<ul><li>Java</li></ul>Hard100
King and Four Sons<ul><li>Java</li></ul>Expert100
Counting the Ways<ul><li>Java</li></ul>Expert100
Hard Disk Drives<ul><li>Java</li></ul>Expert100
Travel around the world<ul><li>Java</li></ul>Medium120
Robot<ul><li>Java</li></ul>Advanced120
Vim War<ul><li>Java</li></ul>Advanced120
Dortmund Dilemma<ul><li>Java</li></ul>Advanced150
Separate the chocolate<ul><li>Java</li></ul>Expert250

Constructive Algorithms

#TitleSolutionTimeSpaceDifficultyPointsNote
Lena Sort<ul><li>Java</li></ul>Medium30
Flipping the Matrix<ul><li>Java</li><ul>O(n^2)O(n^2)Medium30
Gaming Array<ul><li>Java</li></ul>Medium35
New Year Chaos<ul><li>Java</li></ul>Medium40
Bonetrousle<ul><li>Java</li></ul>Medium50
Yet Another KMP Problem<ul><li>Java</li></ul>Hard60
Beautiful 3 Set<ul><li>Java</li></ul>Hard60
Inverse RMQ<ul><li>Java</li></ul>Hard60
Two Subarrays<ul><li>Java</li></ul>Expert70
Lovely Triplets<ul><li>Java</li></ul>Advanced80
Array Construction<ul><li>Java</li></ul>Advanced80

Bit Manipulation

#TitleSolutionTimeSpaceDifficultyPointsNote
Lonely Integer<ul><li>Java</li><ul>O(n)O(1)Easy20
Maximizing XOR<ul><li>Java</li></ul>Easy30
Counter game<ul><li>Java</li></ul>Medium30
Xor-sequence<ul><li>Java</li></ul>Medium40
Sum vs XOR<ul><li>Java</li><ul>O(n log(n))O(1)Easy20
The Great XOR<ul><li>Java</li></ul>Medium25
Flipping bits<ul><li>Java</li></ul>Easy40
Yet Another Minimax Problem<ul><li>Java</li></ul>Medium30
Sansa and XOR<ul><li>Java</li></ul>Medium30
AND Product<ul><li>Java</li></ul>Medium40
Xoring Ninja<ul><li>Java</li></ul>Hard55
Cipher<ul><li>Java</li></ul>Medium50
XOR Matrix<ul><li>Java</li></ul>Hard50
What's Next?<ul><li>Java</li></ul>Medium50
String Transmission<ul><li>Java</li></ul>Hard60
A or B<ul><li>Java</li></ul>Medium50
Manipulative Numbers<ul><li>Java</li></ul>Hard55
Stone game<ul><li>Java</li></ul>Hard70
2's complement<ul><li>Java</li></ul>Advanced70
Changing Bits<ul><li>Java</li></ul>Advanced70
XOR key<ul><li>Java</li></ul>Advanced80
Maximizing the Function<ul><li>Java</li></ul>Hard70
XOR Subsequences<ul><li>Java</li></ul>Advanced80
Iterate It<ul><li>Java</li></ul>Expert90
Hamming Distance<ul><li>Java</li></ul>Expert150
Mixing proteins<ul><li>Java</li></ul>Hard80

Recursion

#TitleSolutionTimeSpaceDifficultyPointsNote
The Power Sum<ul><li>Java</li></ul>Easy20
Crossword Puzzle<ul><li>Java</li></ul>Medium30
Recursive Digit Sum<ul><li>Java</li></ul>Medium30
Simplified Chess Engine<ul><li>Java</li></ul>Medium40
Password Cracker<ul><li>Java</li></ul>Medium40
Artithmetic Expressions<ul><li>Java</li></ul>Hard40
K Factorization<ul><li>Java</li></ul>Hard50
Bowling Pins<ul><li>Java</li></ul>Advanced60
Simplified Chess Engine II<ul><li>Java</li></ul>Hard60
Repetitive K-Sums<ul><li>Java</li></ul>Advanced150

Game Theory

#TitleSolutionTimeSpaceDifficultyPointsNote
Game of Stones<ul><li>JS</li><ul>O(n)O(1)Easy15
Tower Breakers<ul><li>Java</li></ul>Easy15
A Chessboard Game<ul><li>Java</li></ul>Easy15
Introduction to Nim Game<ul><li>Java</li></ul>Easy15
Misère Nim<ul><li>Java</li></ul>Easy20
Nimble Game<ul><li>Java</li></ul>Easy20
Alice and Bob's Silly Game<ul><li>Java</li></ul>Medium30
Poker Nim<ul><li>Java</li></ul>Easy20
Tower Breakers, Revisited!<ul><li>Java</li></ul>Medium25
Tower Breakers, Again!<ul><li>Java</li></ul>Medium30
Zero-Move Nim<ul><li>Java</li></ul>Medium50
Chessboard Game, Again!<ul><li>Java</li></ul>Medium30
Digits Square Board<ul><li>Java</li></ul>Medium35
Fun Game<ul><li>Java</li></ul>Medium40
Stone Division<ul><li>Java</li></ul>Hard50
Chocolate in Box<ul><li>Java</li></ul>Medium70
Kitty and Katty<ul><li>Java</li></ul>Medium80
Powers Game<ul><li>Java</li></ul>Medium50
Deforestation<ul><li>Java</li></ul>Medium50
Bob and Ben<ul><li>Java</li></ul>Medium50
Tower Breakers - The Final Battle<ul><li>Java</li></ul>Medium50
Simple Game<ul><li>Java</li></ul>Hard60
Permutation game<ul><li>Java</li></ul>Medium70
Move the Coins<ul><li>Java</li></ul>Hard60
Play on benders<ul><li>Java</li></ul>Medium70
New Year Game<ul><li>Java</li></ul>Medium60
Stone Piles<ul><li>Java</li></ul>Hard80
Chocolate Game<ul><li>Java</li></ul>Hard90
Manasa and Prime game<ul><li>Java</li></ul>Hard90
Vertical Rooks<ul><li>Java</li></ul>Medium90
A stones game<ul><li>Java</li></ul>Medium90
Tastes Like Winning<ul><li>Java</li></ul>Expert100

NP Complete

#TitleSolutionTimeSpaceDifficultyPointsNote
Walking the Approximate Longest Path<ul><li>Java</li></ul>Hard70
Sam's Puzzle (Approximate)<ul><li>Java</li></ul>Advanced85
Spies, Revised<ul><li>Java</li></ul>Expert100
TBS Problem<ul><li>Java</li></ul>Expert100

Object Oriented Programming

#TitleSolutionTimeSpaceDifficultyPointsNote
Class vs. Instance<ul><li>Java</li><ul>N/AN/AEasy30
Inheritance<ul><li>Java</li><ul>O(n)O(1)Easy30
Abstract Classes<ul><li>Java</li><ul>N/AN/AEasy30
Complex Numbers<ul><li>Java</li><ul>O(1)O(1)Easy30

Arrays

#TitleSolutionTimeSpaceDifficultyPointsNote
Arrays - DS<ul><li>C++</li><ul>O(n)O(n)Easy10
2D Array - DS<ul><li>C++</li><ul>O(1)O(1)Easy15
Sparse Arrays<ul><li>C#</li><ul>O(n + q)O(n + q)Medium25n = number of input strings, q = number of queries
Dynamic Array<ul><li>C#</li><ul>O(q)O(n)Easy15q = Number of queries

Linked Lists

#TitleSolutionTimeSpaceDifficultyPointsNote
Print the Elements of a Linked List<ul><li>C++</li><ul>O(n)O(1)Easy5
Reverse a Linked List<ul><li>Java</li><ul>O(n)O(1)Easy5
Compare Two Linked Lists<ul><li>C++</li><ul>O(n)O(1)Easy5
Delete a node<ul><li>C++</li><ul>O(n)O(1)Easy5

Trees

#TitleSolutionTimeSpaceDifficultyPointsNote
Tree: Preorder Traversal<ul><li>C++</li><ul>O(n)O(n)Easy10
Swap Nodes [Algo]<ul><li>C#</li><ul>O(n)O(n)Medium40

Balanced Trees

#TitleSolutionTimeSpaceDifficultyPointsNote
Self Balancing Tree<ul><li>C++</li><ul>O(log(n))O(n)Medium50

Stacks

#TitleSolutionTimeSpaceDifficultyPointsNote
Maximum Element<ul><li>C++</li><ul>Push-O(1), Delete - O(n), Print - O(1)Push - O(1), Delete - O(1), Print - O(1)Easy20
Balanced Brackets<ul><li>Java</li><ul>O(n)O(n)Medium25

Queues

#TitleSolutionTimeSpaceDifficultyPointsNote
Queue using Two Stacks<ul><li>C#</li><ul>Enqueue - O(1), Dequeue - O(n), Print - O(n)Enqueue - O(1), Dequeue - O(1), Print - O(1)Medium30

Heap

#TitleSolutionTimeSpaceDifficultyPointsNote
QHEAP1<ul><li>C#</li><ul>Insert - O(log(n)), Delete - O(n), Print - O(1)Insert - O(1), Delete - O(1), Print - O(1)Easy25

Disjoint Set

#TitleSolutionTimeSpaceDifficultyPointsNote
Spaceholder<ul><li>C#</li><ul>O(1)O(1)Easy1

Multiple Choice

#TitleSolutionTimeSpaceDifficultyPointsNote
Data Structures MCQ 1<ul><li>Language Independent</li><ul>NANAHard5
Data Structures MCQ 2<ul><li>Language Independent</li><ul>NANAHard5
Data Structures MCQ 3<ul><li>Language Independent</li><ul>NANAHard5

Trie

#TitleSolutionTimeSpaceDifficultyPointsNote
Contacts<ul><li>C#</li><ul>Add - O(L), Find - O(L)Add - O(L), Find - O(1)Medium40L = Length of a contact name

Advanced

#TitleSolutionTimeSpaceDifficultyPointsNote
Spaceholder<ul><li>C#</li><ul>O(1)O(1)Easy1

Fundamentals

#TitleSolutionTimeSpaceDifficultyPointsNote
Leonardo's Prime Factors<ul><li>C#</li><ul>O(1)O(1)Easy10

Contributors

Showing top 9 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from RyanFehr/HackerRank via the GitHub API.Last fetched: 6/13/2026