

GitHub - RyanFehr/HackerRank: HackerRank solutions in Java/JS/Python/C++/C#
source link: https://github.com/RyanFehr/HackerRank
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

README.md
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 
- Warmup
- Implementation
- Strings
- Sorting
- Search
- Graph Theory
- Greedy
- Dynamic Programming
- Constructive Algorithms
- Bit Manipulation
- Recursion
- Game Theory
- NP Complete
DataStructures 
- Arrays
- Linked Lists
- Trees
- Balanced Trees
- Stacks
- Queues
- Heap
- Disjoint Set
- Multiple Choice
- Trie
- Advanced
Mathematics 
- Fundamentals
- Number Theory
- Combinatorics
- Algebra
- Geometry
- Probability
- Linear Algebra Foundations
Java 
- Introduction
- Strings
- BigNumber
- Data Structures
- Object Oriented Programming
- Exception Handling
- Advanced
Warmup
# Title Solution Time Space Difficulty Points Note
O(1)O(1) Easy 1
O(n)O(1) Easy 10
O(1)O(1) Easy 10
O(n)O(1) Easy 10
O(n)O(1) Easy 10
O(n)O(1) Easy 10
O(n)O(n) Easy 10
O(1)O(1) Easy 10
O(1)O(1) Easy 15
O(n)O(1) Easy 10
Implementation
# Title Solution Time Space Difficulty Points Note
O(n)O(1) Easy 10
O(n+m)O(1) Easy 10
O(1)O(1) Easy 10
O(x(n+m))O(1) Easy 10 x=(max(m) - min(n))/min(n)
O(n^2)O(1) Easy 10
O(n)O(1) Easy 10
O(n)O(1) Easy 10
O(n)O(1) Easy 10
O(1)O(1) Easy 15
O(n)O(1) Easy 10
O(n)O(n) Easy 10
O(1)O(1) Easy 10
O(n)O(1) Easy 15
O(1)O(1) Easy 15
O(n log (n))O(1) Easy 15 n = m+n
O(n)O(n) Easy 20
O(n+m)(n) Easy 20
O(n)O(1) Easy 15
O(n)O(n) Easy 20
O(1)O(1) Easy 20
O(n)O(1) Easy 20
O(n)O(1) Easy 20
O(n)O(1) Easy 15
O(n)O(1) Easy 15
O(1)O(1) Easy 15
O(n)O(1) Easy 20
O(n)O(n) Easy 20
Jumping on the Clouds: Revisited
O(n)O(n) Easy 15
O(n)O(1) Easy 25
O(n)O(1) Medium 20
O(n)O(1) Easy 20
O(n)O(1) Easy 20
O(1)O(1) Easy 15
O(n log(n))O(n) Easy 25
O(n)O(n) Medium 20
O(n)O(n) Easy 20
O(n)O(n) Easy 20
O(n)O(n) Easy 20
O(k)O(1) Medium 30
O(n^3)O(n) Easy 25
O(1)O(1) Easy 25
Organizing Containers of Balls
O(n^2)O(n^2) Medium 30
O(n)O(1) Medium 30
O(n)O(n) Medium 35
O(n)O(1) Easy 30
O(n)O(n) Easy 20
O(n)O(n) Easy 20
O(|a|+|b|)O(1) Easy 30
O(1)O(1) Medium 25
O(log(n))O(1) Easy 25 Base of logarithmic time complexity is m
O(n)O(n) Easy 20
O(n)O(1) Easy 25
O(n)O(n) Easy 25
O(n)O(1) Easy 25
O(n^2)O(n^2) Easy 30
O(n)O(1) Easy 30
O(n)O(n) Medium 30 n = len(word)
O(n)O(n) Easy 30
O(n)O(1) Easy 30 n = t
O(n)O(n) Medium 40
O(n*m)O(n*m) Medium 40
- Java
Medium 40
- Java
Medium 40
- Java
Medium 50
O(n*m)O(n*m) Hard 80
Consecutive 1s in Binary Numbers
O(n)O(1) Easy 30
O(1)O(1) Easy 40
O(1)O(1) Easy 20
Strings
# Title Solution Time Space Difficulty Points Note
O(n)O(n) Easy 10
O(n)O(1) Easy 15
O(n)O(1) Easy 15
O(n)O(n) Easy 15
O(n)O(n) Easy 15
O(n)O(n) Easy 40
O(n)O(1) Easy 15
O(n)O(1) Easy 20
O(n)O(1) Easy 20
O(n)O(n) Easy 20
- Java
- C#
O(n) Easy 20
O(n)O(n) Easy 25
O(n)O(1) Easy 20
O(n)O(1) Easy 20
O(n)O(1) Easy 20
O(n)O(1) Easy 20
- Java
Hard 50
O(n)O(1) Easy 25
O(n)O(1) Easy 25
O(n)O(n) Easy 30
O(n)O(1) Easy 30
O(|a| + |b|)O(1) Easy 25 a and b are lengths of the input strings
O(n)O(n) Easy 25
O(n)O(n) Hard 100
- Java
- Python3
O(n) Medium 30
- Java
Medium 50
- Java
Hard 60
- Java
Medium 50
O((|a|+|b|)^2)O(|a| + |b|) Expert 100
- Java
Hard 80
- Java
Advanced 80
- Java
Advanced 80
- Java
Hard 80
- Java
Hard 80
- Java
Advanced 100
- Java
Expert 100
- Java
Advanced 80
- Java
Advanced 120
- Java
Advanced 85
- Java
Expert 100
- Java
Expert 100
- Java
Expert 100
- Java
Advanced 150
- Java
Expert 100
- Java
Expert 100
- Java
Expert 100
- Java
Expert 100
Sorting
# Title Solution Time Space Difficulty Points Note
O(n)O(1) Easy 30
O(n)O(1) Easy 30
O(n^2)O(1) Easy 30
Correctness and the Loop Invariant
O(n^2)O(1) Easy 30
O(n^2)O(1) Easy 30
O(n)O(n) Easy 10
O(n^2)O(n) Easy 30
O(n^2)O(log(n)) Medium 35
O(n log(n))O(log(n)) Easy 35
O(n+k)O(k) Easy 30 value of k in this problem is 100
O(n+k)O(n+k) Easy 30 Value of k is 100 in this problem.
O(n+k)O(k) Easy 30
O(n+k)O(n+k) Medium 40
O(n log(n))O(n) Easy 35
O(n log(n))O(n) Easy 35
Insertion Sort Advanced Analysis
- Java
Advanced 50
Fraudulent Activity Notifications
O(n^2)O(n) Medium 40
O(n log(n))O(n) Medium 40
O(n log(n))O(n) Easy 20
Search
# Title Solution Time Space Difficulty Points Note
O(n log(n))O(n) Medium 25
O(n)O(n) Easy 30
Binary Search: Ice Cream Parlor
O(n)O(n) Easy 35
- Java
- C#
O(k) Medium 25 k = number of tracks
O(n)O(n) Easy 45
O(n log(n))O(n) Medium 35
- Java
Medium 35
O(n log(n))O(n) Medium 50
O(n)O(n) Easy 40
- Java
Hard 65
- Java
Medium 50
- Java
Medium 40
- Java
Hard 70
- Java
Medium 50
- Java
Medium 50
- Java
Hard 45
- Java
Medium 50
- Java
Medium 50
- Java
Hard 65
- Java
Advanced 70
- Java
Advanced 70
- Java
Hard 70
- Java
Hard 80
- Java
Expert 80
- Java
Hard 80
Graph Theory
# Title Solution Time Space Difficulty Points Note
- Java
Medium 30
- Java
Medium 40
- Java
Medium 50
- Java
Medium 50
Snakes and Ladders: The Quickest Way Up
- Java
Medium 50
- Java
Hard 50
O(n + i)O(n) Medium 50
Kruskal (MST): Really Special Subtree
- Java
Hard 50
- Java
Medium 50
- Java
Hard 50
- Java
Medium 50
Breadth First Search: Shortest Reach
- Java
Medium 55
- Java
Hard 55
- Java
Medium 60
- Java
Hard 60
Prim's (MST) : Special Subtree
- Java
Medium 60
- Java
Medium 60
- Java
Hard 60
- Java
Hard 60
- Java
Hard 70
- Java
Advanced 70
O(n+m)O(n) Medium 70
- Java
Hard 70
- Java
Hard 75
- Java
Hard 75
Floyd : City of Blinding Lights
- Java
Hard 75
- Java
Hard 75
- Java
Hard 80
- Java
Hard 80
- Java
Hard 80
- Java
Medium 80
- Java
Hard 80
- Java
Medium 80
- Java
Hard 80
- Java
Advanced 80
- Java
Hard 80
- Java
Hard 80
- Java
Advanced 80
- Java
Expert 80
- Java
Expert 80
- Java
Expert 80
- Java
Advanced 85
- Java
Hard 90
- Java
Hard 90
- Java
Expert 90
- Java
Expert 90
- Java
Hard 90
- Java
Advanced 95
- Java
Advanced 100
- Java
Expert 100
- Java
Expert 100
- Java
Hard 100
- Java
Hard 100
- Java
Expert 100
- Java
Expert 100
- Java
Expert 100
- Java
Expert 100
- Java
Advanced 100
- Java
Expert 100
- Java
Expert 100
- Java
Hard 120
- Java
Expert 150
Greedy
# Title Solution Time Space Difficulty Points Note
Minimum Absolute Difference in an Array
O(n log(n))O(n) Easy 15
O(n)O(n) Hard 65
O(n log(n))O(n) Easy 35
O(n + k)O(k) Easy 15
O(n*(n log (n)))O(n^2) Easy 20
O(n log(n))O(1) Easy 20
O(n log (n))O(n) Easy 20
O(n log (n))O(n) Easy 40
O(n log (n))O(n) Easy 40
O(n)O(n) Easy 25
O(n)O(n) Easy 30
O(n log(n))O(n) Easy 30
O(n)O(n) Easy 30
- Java
Easy 30
- Java
Medium 20
O(n^2)O(n^2) Medium 30
- Java
Medium 30
O(n log (n))O(n) Medium 35
O(n log(n))O(n) Easy 35
O(n log(n))O(1) Medium 35
- Java
Easy 40
- Java
Easy 40
- Java
Medium 40
- Java
Medium 40
- Java
Advanced 50
- Java
Hard 60
- Java
Hard 60
- Java
Medium 60
- Java
Hard 60
O(n)O(n) Hard 65
- Java
Hard 70
- Java
Advanced 70
Dynamic Programming
# Title Solution Time Space Difficulty Points Note
- Java
Medium 30
- Java
Medium 40
- Java
Medium 40
- Java
Medium 40
- Java
Medium 40
- Java
Medium 40
- Java
Medium 40
- Java
Medium 40
Medium 45
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Hard 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
- Java
Medium 55
- Java
Medium 55
The Longest Common Subsequence
- Java
Medium 55
- Java
Medium 60
- Java
Hard 60
- Java
Hard 60
The Longest Increasing Subsequence
- Java
Advanced 60
O(N*M)O(N) Hard 60
- Java
Medium 60
Sherlock's Array Merging Algorithm
- Java
Hard 60
- Java
Medium 60
Shashank and the Palindromic Strings
- Java
Advanced 60
- Java
Hard 60
- Java
Hard 60
- Java
Hard 60
- Java
Hard 60
- Java
Hard 60
- Java
Medium 65
- Java
Medium 65
- Java
Medium 65
- Java
Medium 65
- Java
Hard 70
- Java
Hard 70
- Java
Hard 70
- Java
Medium 70
- Java
Hard 70
Longest Palindromic Subsequence
- Java
Hard 70
- Java
Hard 70
- Java
Hard 70
- Java
Expert 70
- Java
Advanced 75
The Longest Common Subsequence (LCS)
- Java
Hard 75
- Java
Advanced 80
- Java
Advanced 80
- Java
Advanced 80
- Java
Advanced 80
- Java
Hard 80
- Java
Hard 80
- Java
Hard 80
Wet Shark and Two Subsequences
- Java
Medium 80
- Java
Hard 80
- Java
Hard 80
- Java
Expert 80
- Java
Hard 80
- Java
Hard 80
- Java
Hard 80
- Java
Advanced 80
Kitty's Calculations on a Tree
- Java
Advanced 80
- Java
Advanced 85
- Java
Advanced 85
- Java
Medium 85
- Java
Medium 85
- Java
Hard 90
- Java
Advanced 90
- Java
Advanced 90
- Java
Advanced 90
- Java
Expert 90
- Java
Expert 100
- Java
Expert 100
- Java
Advanced 100
- Java
Hard 100
- Java
Advanced 100
- Java
Expert 100
- Java
Hard 100
- Java
Medium 100
- Java
Advanced 100
- Java
Hard 100
- Java
Advanced 100
- Java
Advanced 100
- Java
Advanced 100
- Java
Hard 100
- Java
Hard 100
- Java
Expert 100
- Java
Expert 100
- Java
Expert 100
- Java
Medium 120
- Java
Advanced 120
- Java
Advanced 120
- Java
Advanced 150
- Java
Expert 250
Constructive Algorithms
# Title Solution Time Space Difficulty Points Note
- Java
Medium 30
O(n^2)O(n^2) Medium 30
- Java
Medium 35
- Java
Medium 40
- Java
Medium 50
- Java
Hard 60
- Java
Hard 60
- Java
Hard 60
- Java
Expert 70
- Java
Advanced 80
- Java
Advanced 80
Bit Manipulation
# Title Solution Time Space Difficulty Points Note
O(n)O(1) Easy 20
- Java
Easy 30
- Java
Medium 30
- Java
Medium 40
O(n log(n))O(1) Easy 20
- Java
Medium 25
- Java
Easy 40
- Java
Medium 30
- Java
Medium 30
- Java
Medium 40
- Java
Hard 55
- Java
Medium 50
- Java
Hard 50
- Java
Medium 50
- Java
Hard 60
- Java
Medium 50
- Java
Hard 55
- Java
Hard 70
- Java
Advanced 70
- Java
Advanced 70
- Java
Advanced 80
- Java
Hard 70
- Java
Advanced 80
- Java
Expert 90
- Java
Expert 150
- Java
Hard 80
Recursion
# Title Solution Time Space Difficulty Points Note
- Java
Easy 20
- Java
Medium 30
- Java
Medium 30
- Java
Medium 40
- Java
Medium 40
- Java
Hard 40
- Java
Hard 50
- Java
Advanced 60
- Java
Hard 60
- Java
Advanced 150
Game Theory
# Title Solution Time Space Difficulty Points Note
O(n)O(1) Easy 15
- Java
Easy 15
- Java
Easy 15
- Java
Easy 15
- Java
Easy 20
- Java
Easy 20
- Java
Medium 30
- Java
Easy 20
- Java
Medium 25
- Java
Medium 30
- Java
Medium 50
- Java
Medium 30
- Java
Medium 35
- Java
Medium 40
- Java
Hard 50
- Java
Medium 70
- Java
Medium 80
- Java
Medium 50
- Java
Medium 50
- Java
Medium 50
Tower Breakers - The Final Battle
- Java
Medium 50
- Java
Hard 60
- Java
Medium 70
- Java
Hard 60
- Java
Medium 70
- Java
Medium 60
- Java
Hard 80
- Java
Hard 90
- Java
Hard 90
- Java
Medium 90
- Java
Medium 90
- Java
Expert 100
NP Complete
# Title Solution Time Space Difficulty Points Note
Walking the Approximate Longest Path
- Java
Hard 70
- Java
Advanced 85
- Java
Expert 100
- Java
Expert 100
Object Oriented Programming
# Title Solution Time Space Difficulty Points Note
N/AN/A Easy 30
O(n)O(1) Easy 30
N/AN/A Easy 30
O(1)O(1) Easy 30
Arrays
# Title Solution Time Space Difficulty Points Note
O(n)O(n) Easy 10
O(1)O(1) Easy 15
O(n + q)O(n + q) Medium 25 n = number of input strings, q = number of queries
O(q) O(n) Easy 15 q = Number of queriesLinked Lists
# Title Solution Time Space Difficulty Points Note
Print the Elements of a Linked List
O(n)O(1) Easy 5
O(n)O(1) Easy 5
O(n)O(1) Easy 5
O(n)O(1) Easy 5
Trees
# Title Solution Time Space Difficulty Points Note
O(n)O(n) Easy 10
O(n)O(n) Medium 40
Balanced Trees
# Title Solution Time Space Difficulty Points Note
O(log(n))O(n) Medium 50
Stacks
# Title Solution Time Space Difficulty Points Note
Push-O(1), Delete - O(n), Print - O(1)Push - O(1), Delete - O(1), Print - O(1) Easy 20
O(n)O(n) Medium 25
Queues
# Title Solution Time Space Difficulty Points Note
Enqueue - O(1), Dequeue - O(n), Print - O(n)Enqueue - O(1), Dequeue - O(1), Print - O(1) Medium 30
Heap
# Title Solution Time Space Difficulty Points Note
Insert - O(log(n)), Delete - O(n), Print - O(1)Insert - O(1), Delete - O(1), Print - O(1) Easy 25
Disjoint Set
# Title Solution Time Space Difficulty Points Note
O(1)O(1) Easy 1
Multiple Choice
# Title Solution Time Space Difficulty Points Note
NANA Hard 5
NANA Hard 5
NANA Hard 5
Trie
# Title Solution Time Space Difficulty Points Note
Add - O(L), Find - O(L) Add - O(L), Find - O(1) Medium 40 L = Length of a contact nameAdvanced
# Title Solution Time Space Difficulty Points Note
O(1)O(1) Easy 1
Fundamentals
# Title Solution Time Space Difficulty Points Note
O(1)O(1) Easy 10
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK