HackerRank recently introduced a module called Cracking the Coding Interview. For those thinking about delving more deeply into the algorithms and data structures concepts they've missed out on, this challenge is for you.
You will choose one of two tracks: Depth or Breadth, each with its own set of specifications.
Depth focuses on gaining a deep knowledge of a particular category of algorithms (e.g., sorting algorithms) or data structures (e.g., binary trees).
Breadth provides a gentle introduction to several different algorithms and data structures concepts.
For each HackerRank question you complete, you will run your solution against an automated test suite that will determine if you've sufficiently solved the problem, or need to tweak your code to match the question's original specification and any edge cases that accompany it.
Context
Learning these concepts is core to passing the 'traditional' tech interview.
Learning these concepts is also a good way to reinforce the CS theory behind the data structures, algorithms and libraries you may encounter while working on your programming goals.
Rely on the videos that accompany each challenge to understand the core concepts necessary to solve the problems. It's important to develop a sense of independence while approaching these problems, though please be sure ask for help if you have exhausted the resources available to you.
The reason developing this independence is important is because in an interview, assistance will be less free flowing than it is at LG. :)
Specifications
Breadth:
[ ] Solve the 4 Easy challenges and 3 Medium challenges under the "Data Structures" section:
NOTE: there are no "easy" Dynamic Programming problems, at least according to HackerRank. :p
[ ] Provide a working implementation of the data structure of your choice. The implementation should support the following operations: insert() / add(), remove() / delete(), and find() (bonus points if you implement additional operations).
[ ] Solve 6 HackerRank or LeetCode challenges that test your ability to use the data structure you chose above. If the HackerRank or LeetCode links do not contain 6 challenges, use the data structure to solve another challenge you find on HackerRank or somewhere else on the internets.
Feel free to substitute any one challenge for a challenge of a higher difficulty level.
Required
[ ] The artifact produced is properly licensed, preferably with the MIT license.
Quality Rubric
You've completed the specifications for either Breadth or Depth
At least 70% of the automated tests for each problem successfully pass
Helpful Resources
If you'd like to dig a little deeper into algorithms, data structures and problem solving techniques for these types of questions, the following is a list of in-depth resources:
Description
HackerRank recently introduced a module called Cracking the Coding Interview. For those thinking about delving more deeply into the algorithms and data structures concepts they've missed out on, this challenge is for you.
You will choose one of two tracks: Depth or Breadth, each with its own set of specifications.
Depth focuses on gaining a deep knowledge of a particular category of algorithms (e.g., sorting algorithms) or data structures (e.g., binary trees).
Breadth provides a gentle introduction to several different algorithms and data structures concepts.
For each HackerRank question you complete, you will run your solution against an automated test suite that will determine if you've sufficiently solved the problem, or need to tweak your code to match the question's original specification and any edge cases that accompany it.
Context
Learning these concepts is core to passing the 'traditional' tech interview.
Learning these concepts is also a good way to reinforce the CS theory behind the data structures, algorithms and libraries you may encounter while working on your programming goals.
Rely on the videos that accompany each challenge to understand the core concepts necessary to solve the problems. It's important to develop a sense of independence while approaching these problems, though please be sure ask for help if you have exhausted the resources available to you.
The reason developing this independence is important is because in an interview, assistance will be less free flowing than it is at LG. :)
Specifications
Breadth:
[ ] Solve the 4 Easy challenges and 3 Medium challenges under the "Data Structures" section:
Easy (solve all): Arrays: Left Rotation Strings: Making Anagrams Hash Tables: Ransom Note Linked Lists: Detect a Cycle
Medium (solve all): Stacks: Balanced Brackets Queues: A Tale of Two Stacks Trees: Is This a Binary Search Tree?
[ ] Solve 2 out of the 3 Medium challenges under the "Algorithms" section
Medium (solve 2): Sorting: Bubble Sort Sorting: Comparator Binary Search: Ice Cream Parlor
[ ] Solve the 2 Easy challenges under the "Techniques/Concepts" section and 1 out of 2 Medium Challenges
Easy (solve all): Recursion: Fibonacci Numbers Bit Manipulation: Lonely Integer
Medium (solve 1): Time Complexity: Primality Recursion: Davis' Staircase
Depth:
[ ] Choose one of the following subdomains in HackerRank's Algorithms domain, and solve 10 problems within each domain:
Strings Sorting Search Graph Theory Greedy Dynamic Programming
NOTE: there are no "easy" Dynamic Programming problems, at least according to HackerRank. :p
insert()
/add()
,remove()
/delete()
, andfind()
(bonus points if you implement additional operations).[ ] Solve 6 HackerRank or LeetCode challenges that test your ability to use the data structure you chose above. If the HackerRank or LeetCode links do not contain 6 challenges, use the data structure to solve another challenge you find on HackerRank or somewhere else on the internets.
Choose from the following:
Dynamically-sized list Linked List Binary Tree Binary Search Tree Balanced Binary Tree Stack Queue Heap Trie and Trie (LeetCode) Graph (LeetCode)
Feel free to substitute any one challenge for a challenge of a higher difficulty level.
Required
Quality Rubric
Helpful Resources
If you'd like to dig a little deeper into algorithms, data structures and problem solving techniques for these types of questions, the following is a list of in-depth resources:
Hired in Tech: Algorithm Design An Intuitive Introduction to Data Structures Topcoder Data Structures Articles Topcoder Data Science Articles
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.