About this series
This series of posts documents the learnings, challenges i encountered and the decisions i made on my journey to hone the (algorithmic) tools of my trade. It's partly a tool for me to arrange my thoughts on this, partly a resource for me to revisit every now and then, and partly to serve as a guide for anyone who might find it useful.
Check out the meta post for a list of all related posts. For any Hiring Managers/TA Partners seeing this, drop me an email if you like what you see!
Fundamental Data Structures
- Object
 - Arrays
 - Linked Lists
 - Hash Maps
 - Stacks
 - Queues
 - Priority Queues
 - Trees
 - Graphs
 - (Binary) Heaps
 
NOTE: It is possible to build all of these data structures from the first two in the list
- Arrays -> Stacks, Queues
 - Objects -> Linked Lists -> Stacks, Queues
 - Objects, Arrays -> Hash Maps
 - Objects -> Trees, Graphs
 - Trees -> Heap -> Priority Queue
 
Each data structure should allow for the following operations: Access, Insert, Update, Delete, Sort (if applicable)
Notable Algorithms
- Longest Increasing Subsequence (LIS)
 - Knapsack Problem
 - Dijistra’s Algorithm
 - A* Search
 
