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