/HackerRank

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

Primary LanguageJavaMIT LicenseMIT

Solutions to problems on HackerRank.

Check out HackerRank's new format here

If you are interested in helping or have a solution in a different language feel free to make a pull request.

Algorithms AlgorithmsPoints

DataStructures DataStructuresPoints

  • Arrays
  • Linked Lists
  • Trees
  • Balanced Trees
  • Stacks
  • Queues
  • Heap
  • Disjoint Set
  • Multiple Choice
  • Trie
  • Advanced

Mathematics MathematicsPoints

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

Java JavaPoints

Warmup

# Title Solution Time Space Difficulty Points Note
Solve Me First Java O(1) O(1) Easy 1
Simple Array Sum Java O(n) O(1) Easy 10
Compare the Triplets Java O(1) O(1) Easy 10
A Very Big Sum Java O(n) O(1) Easy 10
Diagonal Difference Java O(n^2) O(1) Easy 10
Plus Minus Java O(n) O(1) Easy 10
Staircase Java O(n) O(n) Easy 10
Mini-Max Sum Java O(1) O(1) Easy 10
Time Conversion Java O(1) O(1) Easy 15
Birthday Cake Candles Java O(n) O(1) Easy 10

Implementation

# Title Solution Time Space Difficulty Points Note
Grading Students Java JS C# O(n) O(1) Easy 10
Apple and Orange Java JS O(n+m) O(1) Easy 10
Kangaroo Java O(1) O(1) Easy 10
Between Two Sets Java O((A^2)+B) O(1) Easy 10
Divisible Sum Pairs Java O(n^2) O(n) Easy 10
Birthday Chocolate Java O(n) O(1) Easy 10
Breaking the Records Java O(n) O(1) Easy 10
Migratory Birds Java JS O(n) O(1) Easy 10
Day of the Programmer Java O(1) O(1) Easy 15
Bon Appetit Java O(n) O(n) Easy 10
Sock Merchant Java C# O(n) O(n) Easy 10
Drawing Book Java C# O(1) O(1) Easy 10
Counting Valleys Java JS C# O(n) O(1) Easy 15
Cats and a Mouse Java C# O(1) O(1) Easy 15
Electronics Shop Java JS C# O(n log (n)) O(1) Easy 15 n = m+n
Picking Numbers Java C# O(n) O(n) Easy 20
Climbing the Leaderboard Java JS C# O(n+m) (n) Easy 20
The Hurdle Race Java C# O(n) O(1) Easy 15
Designer PDF Viewer Java JS C# O(n) O(n) Easy 20
Forming a Magic Square Java O(1) O(1) Easy 20
Utopian Tree Java JS C# O(n) O(1) Easy 20
Angry Professor Java JS C# O(n) O(1) Easy 20
Beautiful Days at the Movies Java JS C# O(n) O(1) Easy 15
Viral Advertising Java JS C# O(n) O(1) Easy 15
Save the Prisoner! Java C# O(1) O(1) Easy 15
Circular Array Rotation Java C# O(n) O(1) Easy 20
Sequence Equation Java C# O(n) O(n) Easy 20
Jumping on the Clouds: Revisited Java O(n) O(n) Easy 15
Find Digits Java O(n) O(1) Easy 25
Extra Long Factorials Java O(n) O(1) Medium 20
Append and Delete Java O(n) O(1) Easy 20
Sherlock and Squares Java O(n) O(1) Easy 20
Library Fine Java O(1) O(1) Easy 15
Cut the sticks Java O(n) O(n) Easy 25
Non-Divisible Subset Java O(n) O(n) Medium 20
Repeated String Java O(n) O(n) Easy 20
Jumping on the Clouds Java O(n) O(n) Easy 20
Equalize the Array Java O(n) O(n) Easy 20
Queen's Attack II Java O(k) O(1) Medium 30
ACM ICPC Team Java O(n^3) O(n) Easy 25
Taum and B'day Java O(1) O(1) Easy 25
Organizing Containers of Balls Java O(n^2) O(n^2) Medium 30
Encryption Java O(n) O(n) Medium 30
Bigger is Greater Java O(n) O(n) Medium 35
Modified Kaprekar Numbers Java O(n) O(1) Easy 30
Beautiful Triplets Java O(n) O(n) Easy 20
Minimum Distances Java O(n) O(n) Easy 20
Strings: Making Anagrams Java O(|a|+|b|) O(1) Easy 30
The Time in Words Java O(1) O(1) Medium 25
Chocolate Feast Java O(n) O(1) Easy 25
Service Lane Java O(n) O(n) Easy 20
Lisa's Workbook Java O(n) O(1) Easy 25
Flatland Space Stations Java O(n) O(n) Easy 25
Fair Rations Java O(n) O(n) Easy 25
Cavity Map Java O(n^2) O(n^2) Easy 30
Manasa and Stones Java O(n) O(1) Easy 30
The Grid Search Java O(n) O(n) Medium 30 n = len(word)
Happy Ladybugs Java O(n) O(n) Easy 30
Strange Counter Java O(n) O(1) Easy 30 n = t
Absolute Permuation Java O(n) O(n) Medium 40
The Bomberman Game Java O(n*m) O(n*m) Medium 40
Ema's Supercomputer Java Medium 40
Larry's Array Java Medium 40
Almost Sorted Java Medium 50
Matrix Layer Rotation Python3 O(n*m) O(n*m) Hard 80
Consecutive 1s in Binary Numbers Java O(n) O(1) Easy 30
Nested Logic Java O(1) O(1) Easy 40
Bitwise AND Java O(1) O(1) Easy 20

Strings

# Title Solution Time Space Difficulty Points Note
Super Reduced String Java O(n) O(n) Easy 10
camelCase Java O(n) O(1) Easy 15
Two Characters Java O(n) O(1) Easy 15
Caesar Cipher Java O(n) O(n) Easy 15
Caesar Cipher: Encryption Java O(n) O(n) Easy 40
Mars Exploration Java O(n) O(1) Easy 15
HackerRank in a String! Java JS O(n) O(1) Easy 20
Pangrams Java O(n) O(1) Easy 20
Weighted Uniform Strings Java O(n) O(n) Easy 20
Separate the Numbers Java Easy 20
Funny String Java O(n) O(1) Easy 25
Gemstones Java O(n) O(n) Easy 20
Alternating Characters Java O(n) O(1) Easy 20
Beautiful Binary String Java O(n) O(1) Easy 20
The Love-Letter Mystery Java O(n) O(1) Easy 20
Determining DNA Health Java Hard 50
Palindrome Index Java O(n) O(1) Easy 25
Anagram Java O(n) O(1) Easy 25
Making Anagrams Java O(n) O(n) Easy 30
Game of Thrones - I Java O(n) O(1) Easy 30
Two Strings Java O(|a| + |b|) O(1) Easy 25
String Construction Java O(n) O(n) Easy 25
Sherlock and Valid String Java O(n) O(n) Hard 100
Richie Rich Java Python 3 O(n) O(n) Medium 30
Sherlock and Anagrams Java Medium 50
Common Child Java Hard 60
Bear and Steady Gene Java Medium 50
Morgan and a String Java O((|a|+|b|)^2) O(|a| + |b|) Expert 100
Count Strings Java Hard 80
String Function Calculation Java Advanced 80
Build a Palindrome Java Advanced 80
Build a String Java Hard 80
Gridland Provinces Java Hard 80
Ashton and String Java Advanced 100
String Similarity Java Expert 100
Super Functional Strings Java Advanced 80
Circular Palindromes Java Advanced 120
Similar Strings Java Advanced 85
Save Humanity Java Expert 100
Find Strings Java Expert 100
Palindromic Border Java Expert 100
Two Two Java Advanced 150
Two Strings Game Java Expert 100
Letter Islands Java Expert 100
Pseudo-Isomorphic Substrings Java Expert 100
How Many Substrings? Java Expert 100

Sorting

# Title Solution Time Space Difficulty Points Note
Intro to Tutorial Challenges Java O(n) O(1) Easy 30
Insertion Sort - Part 1 Java O(n) O(1) Easy 30
Insertion Sort - Part 2 Java O(n^2) O(1) Easy 30
Correctness and the Loop Invariant Java O(n^2) O(1) Easy 30
Running Time of Algorithms Java O(n^2) O(1) Easy 30
Quicksort 1 - Partition Java O(n) O(n) Easy 10
Quicksort 2 - Sorting Java O(n^2) O(n) Easy 30
Quicksort In-Place Java O(n^2) O(log(n)) Medium 35
Running Time of Quicksort Java O(n log(n)) O(log(n)) Easy 35
Counting Sort 1 Java O(n+k) O(k) Easy 30
Counting Sort 2 Java O(n+k) O(k) Easy 30
Counting Sort 3 Java O(n+k) O(k) Easy 30
The Full Counting Sort Java O(n+k) O(k) Medium 40
Marc's Cakewalk Java O(n + k) O(k) Easy 15
Minimum Absolute Difference in an Array Java JS O(n log(n)) O(1) Easy 15
Luck Balance Java O(n log(n)) O(1) Easy 20
Closest Numbers Java O(n log(n)) O(n) Easy 35
Find the Median Java O(n log(n)) O(n) Easy 35
Insertion Sort Advanced Analysis Java Advanced 50
Fraudulent Activity Notifications Java O(n^2) O(n) Medium 40
Lily's Homework Java O(n log(n)) O(n) Medium 40
Big Sorting Java O(n log(n)) O(n) Easy 20

Search

# Title Solution Time Space Difficulty Points Note
Hackerland Radio Transmitters JS O(n log(n)) O(1) Easy 15
Ice Cream Parlor Java O(n) O(n) Easy 30
Binary Search: Ice Cream Parlor Java O(n) O(n) Easy 35
Gridland Metro Java Medium 25
Missing Numbers Java C++ Easy 45
Minimum Loss Java O(n log(n)) O(n) Medium 35
KnightL on a Chessboard Java Medium 35
Pairs Java C++ O(n log(n)) O(n) Medium 50
Sherlock and Array Java C++ Easy 40
Maximum Subarray Sum Java Hard 65
Connected Cells in a grid Java Medium 50
Short Palindrome Java Medium 40
Maximizing Mission Points Java Hard 70
Count Luck Java Medium 50
Cut the Tree Java Medium 50
Making Candies Java Hard 45
Gena Playing Hanoi Java Medium 50
Beautiful Quadruples Java Medium 50
Bike Racers Java Hard 65
Task Scheduling Java Advanced 70
Similar Pair Java Advanced 70
Absolute Element Sums Java Hard 70
Sorted Subsegments Java Hard 80
Distant Pairs Java Expert 80
King Richard's Knights Java Hard 80

Graph Theory

# Title Solution Time Space Difficulty Points Note
Roads and Libraries Java Medium 30
Synchronous Shopping Java Medium 40
Crab Graphs Java Medium 50
Even Tree Java Medium 50
Snakes and Ladders: The Quickest Way Up Java Medium 50
Subset Component Java Hard 50
Journey to the Moon Java Python 3 O(n + i) O(n) Medium 50
Kruskal (MST): Really Special Subtree Java Hard 50
Minimum Penalty Path Java Medium 50
Demanding Money Java Hard 50
The Story of a Tree Java Medium 50
Breadth First Search: Shortest Reach Java Medium 55
The Value of Friendship Java Hard 55
Clique Java Medium 60
Dijkstra: Shortest Reach 2 Java Hard 60
Prim's (MST) : Special Subtree Java Medium 60
Roads in Hackerland Java Medium 60
Toll Cost Digits Java Hard 60
Real Estate Broker Java Hard 60
Matrix Java Hard 70
Bead Ornaments Java Advanced 70
Rust & Murderer Java O(n+m) O(n) Medium 70
Recording Episodes Java Hard 70
Kingdom Connectivity Java Hard 75
Journey Scheduling Java Hard 75
Floyd : City of Blinding Lights Java Hard 75
Find the Path Java Hard 75
Repair Roads Java Hard 80
Problem solving Java Hard 80
Computer Game Java Hard 80
Jack goes to Rapture Java Medium 80
Jim and his LAN Party Java Hard 80
Jeanie's Route Java Medium 80
Travel in HackerLand Java Hard 80
Jogging Cats Java Advanced 80
Tree Flow Java Hard 80
Tripartite Matching Java Hard 80
Jumping Rooks Java Advanced 80
Minimum MST Graph Java Expert 80
Coprime Paths Java Expert 80
DAG Queries Java Expert 80
Liars Java Advanced 85
ByteLandianTours Java Hard 90
Kth Ancestor Java Hard 90
Drive Java Expert 90
Road Network Java Expert 90
Savita And Friends Java Hard 90
Favorite sequence Java Advanced 95
Quadrant Queries Java Advanced 100
Going to the Office Java Expert 100
Ticket Java Expert 100
HackerX Java Hard 100
Hacker Country Java Hard 100
Travelling Salesman in a Grid Java Expert 100
Huarongdao Java Expert 100
Vertical Paths Java Expert 100
DFS Edges Java Expert 100
Tree Splitting Java Advanced 100
Definite Random Walks Java Expert 100
Diameter Minimization Java Expert 100
Training the army Java Hard 120
Alex vs Fedor Java Expert 150

Greedy

# Title Solution Time Space Difficulty Points Note
Chief Hopper Java O(n) O(n) Hard 65
Mark and Toys Java JS O(n log(n)) O(n) Easy 35
Grid Challenge Java O(n*(n log (n))) O(n^2) Easy 20
Maximum Perimeter Triangle Java O(n log (n)) O(n) Easy 20
Permuting Two Arrays Java JS O(n log (n)) O(n) Easy 40
Jim and the Orders Java O(n log (n)) O(n) Easy 40
Equal Stacks Java O(n) O(n) Easy 25
Sherlock and The Beast Java O(n) O(n) Easy 30
Priyanka and Toys Java JS O(n log(n)) O(n) Easy 30
Largest Permutation JS O(n) O(n) Easy 30
Beautiful Pairs Java Easy 30
Yet Another Minimax Problem Java Medium 20
Flipping the Matrix Java O(n^2) O(n^2) Medium 30
Roads and Libraries Java Medium 30
Greedy Florist JS O(n log (n)) O(n) Medium 35
Mark and Toys Java O(n log(n)) O(n) Easy 35
Max Min Java O(n log(n)) O(1) Medium 35
Permuting Two Arrays Java Easy 40
Jim and the Orders Java Easy 40
Goodland Electricity Java Medium 40
Fun Game Java Medium 40
Reverse Shuffle Merge Java Advanced 50
Cutting Boards Java Hard 60
Algorithmic Crush Java Hard 60
Prim's (MST): Special Subtree Java Medium 60
Accessory Collection Java Hard 60
Chief Hopper Java O(n) O(n) Hard 65
Sherlock and MiniMax Java Hard 70
Team Formation Java Advanced 70

Dynamic Programming

# Title Solution Time Space Difficulty Points Note
Equal Java Medium 30
Cut Tree Java Medium 40
Mr K marsh Java Medium 40
Sam and sub-strings Java Medium 40
Summing Pieces Java Medium 40
Short Palindrome Java Medium 40
Abbreviation Java Medium 40
Fair Cut Java Medium 40
Fibonacci Modified Java Medium 45
Lego Blocks Java Medium 50
Candies Java Medium 50
Stock Maximize Java Medium 50
Angry Childtren 2 Java Hard 50
The Maximum Subarray Java Medium 50
Sherlock and Cost Java Medium 50
Xor and Sum Java Medium 50
Counting Special Sub-Cubes Java Medium 50
Two Robots Java Medium 50
Kingdom Division Java Medium 50
Prime XOR Java Medium 50
HackerRank City Java Medium 50
Nikita and the Game Java Medium 50
Prime Digit Sums Java Medium 50
Mandragora Forest Java Medium 50
LCS Returns Java Medium 50
Grid Walking Java Medium 55
Bricks Game Java Medium 55
The Longest Common Subsequence Java Medium 55
Substring Diff Java Medium 60
Brick Tiling Java Hard 60
Alien Languages Java Hard 60
The Longest Increasing Subsequence Java Advanced 60
The Coin Change Problem Python 3 O(N*M) O(N) Hard 60
Knapsack Java Medium 60
Sherlock's Array Merging Algorithm Java Hard 60
New Year Game Java Medium 60
Shashank and the Palindromic Strings Java Advanced 60
Decibinary Numbers Java Hard 60
Choosing White Balls Java Hard 60
DP: Coin Change Java Hard 60
Clues on a Binary Path Java Hard 60
GCD Matrix Java Hard 60
Coin on the Table Java Medium 65
Interval Selection Java Medium 65
Red John is Back Java Medium 65
Play with words Java Medium 65
Queens on Board Java Hard 70
String Reduction Java Hard 70
Far Vertices Java Hard 70
The Indian Job Java Medium 70
Hexagonal Grid Java Hard 70
Longest Palindromic Subsequence Java Hard 70
Turn Off the Lights Java Hard 70
Tara's Beautiful Permutations Java Hard 70
Two Subarrays Java Expert 70
Mining Java Advanced 75
The Longest Common Subsequence (LCS) Java Hard 75
Points in a Plane Java Advanced 80
Fairy Chess Java Advanced 80
Billboards Java Advanced 80
Requirement Java Advanced 80
A Super Hero Java Hard 80
Covering the stains Java Hard 80
Superman Celebrates Diwali Java Hard 80
Wet Shark and Two Subsequences Java Medium 80
Zurikela's Graph Java Hard 80
New Year Present Java Hard 80
Suffix Rotation Java Expert 80
Black and White Tree Java Hard 80
Beautiful Strings Java Hard 80
Longest Mod Path Java Hard 80
Super Functional Strings Java Advanced 80
Kitty's Calculations on a Tree Java Advanced 80
Liars Java Advanced 85
Dorsey Thief Java Advanced 85
Swap Permutation Java Medium 85
Candles Counting Java Medium 85
Square Subsequences Java Hard 90
Hyper Strings Java Advanced 90
Unique Divide And Conquer Java Advanced 90
Super Kth LIS Java Advanced 90
Counting Road Networks Java Expert 90
Lucky Numbers Java Expert 100
Count Scorecards Java Expert 100
Unfair Game Java Advanced 100
Oil Well Java Hard 100
Modify The Sequence Java Advanced 100
Divisible Numbers Java Expert 100
Ones and Twos Java Hard 100
Extremum Permutations Java Medium 100
Tree Pruning Java Advanced 100
P-sequences Java Hard 100
Best spot Java Advanced 100
Find the Seed Java Advanced 100
The Blacklist Java Advanced 100
Police Operation Java Hard 100
Road Maintenance Java Hard 100
King and Four Sons Java Expert 100
Counting the Ways Java Expert 100
Hard Disk Drives Java Expert 100
Travel around the world Java Medium 120
Robot Java Advanced 120
Vim War Java Advanced 120
Dortmund Dilemma Java Advanced 150
Separate the chocolate Java Expert 250

Constructive Algorithms

# Title Solution Time Space Difficulty Points Note
Lena Sort Java Medium 30
Flipping the Matrix Java O(n^2) O(n^2) Medium 30
Gaming Array Java Medium 35
New Year Chaos Java Medium 40
Bonetrousle Java Medium 50
Yet Another KMP Problem Java Hard 60
Beautiful 3 Set Java Hard 60
Inverse RMQ Java Hard 60
Two Subarrays Java Expert 70
Lovely Triplets Java Advanced 80
Array Construction Java Advanced 80

Bit Manipulation

# Title Solution Time Space Difficulty Points Note
Lonely Integer Java O(n) O(1) Easy 20
Maximizing XOR Java Easy 30
Counter game Java Medium 30
Xor-sequence Java Medium 40
Sum vs XOR Java O(n log(n)) O(1) Easy 20
The Great XOR Java Medium 25
Flipping bits Java Easy 40
Yet Another Minimax Problem Java Medium 30
Sansa and XOR Java Medium 30
AND Product Java Medium 40
Xoring Ninja Java Hard 55
Cipher Java Medium 50
XOR Matrix Java Hard 50
What's Next? Java Medium 50
String Transmission Java Hard 60
A or B Java Medium 50
Manipulative Numbers Java Hard 55
Stone game Java Hard 70
2's complement Java Advanced 70
Changing Bits Java Advanced 70
XOR key Java Advanced 80
Maximizing the Function Java Hard 70
XOR Subsequences Java Advanced 80
Iterate It Java Expert 90
Hamming Distance Java Expert 150
Mixing proteins Java Hard 80

Recursion

# Title Solution Time Space Difficulty Points Note
The Power Sum Java Easy 20
Crossword Puzzle Java Medium 30
Recursive Digit Sum Java Medium 30
Simplified Chess Engine Java Medium 40
Password Cracker Java Medium 40
Artithmetic Expressions Java Hard 40
K Factorization Java Hard 50
Bowling Pins Java Advanced 60
Simplified Chess Engine II Java Hard 60
Repetitive K-Sums Java Advanced 150

Game Theory

# Title Solution Time Space Difficulty Points Note
Game of Stones JS O(n) O(1) Easy 15
Tower Breakers Java Easy 15
A Chessboard Game Java Easy 15
Introduction to Nim Game Java Easy 15
Misère Nim Java Easy 20
Nimble Game Java Easy 20
Alice and Bob's Silly Game Java Medium 30
Poker Nim Java Easy 20
Tower Breakers, Revisited! Java Medium 25
Tower Breakers, Again! Java Medium 30
Zero-Move Nim Java Medium 50
Chessboard Game, Again! Java Medium 30
Digits Square Board Java Medium 35
Fun Game Java Medium 40
Stone Division Java Hard 50
Chocolate in Box Java Medium 70
Kitty and Katty Java Medium 80
Powers Game Java Medium 50
Deforestation Java Medium 50
Bob and Ben Java Medium 50
Tower Breakers - The Final Battle Java Medium 50
Simple Game Java Hard 60
Permutation game Java Medium 70
Move the Coins Java Hard 60
Play on benders Java Medium 70
New Year Game Java Medium 60
Stone Piles Java Hard 80
Chocolate Game Java Hard 90
Manasa and Prime game Java Hard 90
Vertical Rooks Java Medium 90
A stones game Java Medium 90
Tastes Like Winning Java Expert 100

NP Complete

# Title Solution Time Space Difficulty Points Note
Walking the Approximate Longest Path Java Hard 70
Sam's Puzzle (Approximate) Java Advanced 85
Spies, Revised Java Expert 100
TBS Problem Java Expert 100

Object Oriented Programming

# Title Solution Time Space Difficulty Points Note
Class vs. Instance Java N/A N/A Easy 30
Inheritance Java O(n) O(1) Easy 30
Abstract Classes Java N/A N/A Easy 30