Solutions to the problems on Hackerrank.
- Warmup
- Implementation
- Strings
- Sorting
- Search
- Graph Theory
- Greedy
- Dynamic Programming
- Constructive Algorithms
- Bit Manipulation
- Recursion
- Game Theory
- NP Complete
- Arrays
- Linked Lists
- Trees
- Balanced Trees
- Stacks
- Queues
- Heap
- Disjoint Set
- Multiple Choice
- Trie
- Advanced
- Fundamentals
- Number Theory
- Combinatorics
- Algebra
- Geometry
- Probability
- Linear Algebra Foundations
- Introduction
- Strings
- BigNumber
- Data Structures
- Object Oriented Programming
- Exception Handling
- Advanced
# | 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) | 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 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Hackerland Radio Transmitters | JS | O(n log(n)) | O(n) | Medium | 25 | ||
Ice Cream Parlor | Java | O(n) | O(n) | Easy | 30 | ||
Binary Search: Ice Cream Parlor | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Algorithms/Search/Binary Search Ice Cream Parlor/Solution.java) | O(n) | O(n) | Easy | 35 | ||
Gridland Metro | Java | O(k) | O(k) | Medium | 25 | k = number of tracks | |
Missing Numbers | Java[ | O(n) | O(n) | Easy | 45 | ||
Minimum Loss | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Algorithms/Search/Minimum Loss/Solution.java) | O(n log(n)) | O(n) | Medium | 35 | ||
KnightL on a Chessboard | Java | Medium | 35 | ||||
Pairs | Java[ | O(n log(n)) | O(n) | Medium | 50 | ||
Sherlock and Array | Java[ | O(n) | O(n) | 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 |
# | 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](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Algorithms/Dynamic Programming/Modified Fibonacci/Solution.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 | 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 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Lena Sort | Java | Medium | 30 | ||||
Flipping the Matrix | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Algorithms/Constructve Algorithms/Flipping Matrix/Solution.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 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Lonely Integer | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Algorithms/Bit Manipulation/Lonely Integer/Solution.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](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Algorithms/Bit Manipulation/Sum vs XOR/Solution.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 |
# | 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 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Game of Stones | 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 |
# | 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 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Class vs. Instance | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Java/Class vs. Instance/Solution.java) | N/A | N/A | Easy | 30 | ||
Inheritance | Java | O(n) | O(1) | Easy | 30 | ||
Abstract Classes | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Java/Abstract Classes/Solution.java) | N/A | N/A | Easy | 30 | ||
Complex Numbers | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/Java/Complex Numbers/Solution.java) | O(1) | O(1) | Easy | 30 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Arrays - DS | ) | O(n) | O(n) | Easy | 10 | ||
2D Array - DS | ) | O(1) | O(1) | Easy | 15 | ||
Sparse Arrays | O(n + q) | O(n + q) | Medium | 25 | n = number of input strings, q = number of queries | ||
Dynamic Array | O(q) | O(n) | Easy | 15 | q = Number of queries |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Print the Elements of a Linked List | ) | O(n) | O(1) | Easy | 5 | ||
Reverse a Linked List | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/DataStructures/Linked Lists/Reverse a linked list/Solution.java) | O(n) | O(1) | Easy | 5 | ||
Compare Two Linked Lists | ) | O(n) | O(1) | Easy | 5 | ||
Delete a node | ) | O(n) | O(1) | Easy | 5 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Tree: Preorder Traversal | ) | O(n) | O(n) | Easy | 10 | ||
[Swap Nodes Algo] | O(n) | O(n) | Medium | 40 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Self Balancing Tree | ) | O(log(n)) | O(n) | Medium | 50 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Maximum Element | ) | Push-O(1), Delete - O(n), Print - O(1) | Push - O(1), Delete - O(1), Print - O(1) | Easy | 20 | ||
Balanced Brackets | [Java](https://github.com/kinshuk4/hackerrank-solutions/blob/master/DataStructures/Stacks/Balanced Brackets/Solution.java) | O(n) | O(n) | Medium | 25 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Queue using Two Stacks | Enqueue - O(1), Dequeue - O(n), Print - O(n) | Enqueue - O(1), Dequeue - O(1), Print - O(1) | Medium | 30 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
QHEAP1 | Insert - O(log(n)), Delete - O(n), Print - O(1) | Insert - O(1), Delete - O(1), Print - O(1) | Easy | 25 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Spaceholder | O(1) | O(1) | Easy | 1 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Data Structures MCQ 1 | [Language Independent](https://github.com/kinshuk4/hackerrank-solutions/blob/master/DataStructures/Multiple Choice/Data Structures MCQ 1/Solution.md) | NA | NA | Hard | 5 | ||
Data Structures MCQ 2 | [Language Independent](https://github.com/kinshuk4/hackerrank-solutions/blob/master/DataStructures/Multiple Choice/Data Structures MCQ 2/Solution.md) | NA | NA | Hard | 5 | ||
Data Structures MCQ 3 | [Language Independent](https://github.com/kinshuk4/hackerrank-solutions/blob/master/DataStructures/Multiple Choice/Data Structures MCQ 3/Solution.md) | NA | NA | Hard | 5 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Contacts | Add - O(L), Find - O(L) | Add - O(L), Find - O(1) | Medium | 40 | L = Length of a contact name |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Spaceholder | O(1) | O(1) | Easy | 1 |
# | Title | Solution | Time | Space | Difficulty | Points | Note |
---|---|---|---|---|---|---|---|
Leonardo's Prime Factors | O(1) | O(1) | Easy | 10 |