Stage 2 of 8 · 6 lessons · ~2 months
Arrays, hashing, linked lists, stacks and queues
Learn the linear structures and hash maps that most problems are built on, and exactly what your language gives you for each. Counting, grouping and lookup problems all start here.
Start: Arrays, dynamic arrays and stringsLessons· one lesson for each topic, in this order
Start with· follow one of these
- CoursePaidGrokking Data Structures & Algorithms for Coding Interviews
Design Gurus · Beginner · Subscription
Each structure from first principles, with solutions in Python, Java, C++ and JavaScript
- CourseFreeMIT 6.006 Introduction to Algorithms
MIT OpenCourseWare · Intermediate
Free: lectures 2 and 4 cover dynamic arrays, linked lists, sets and hashing
Practise
Keep handy
Also worth your time
How to pick a structure from the operations a problem needs
Before moving on: Implement a dynamic array, a linked list and a hash map with chaining from scratch, state the Big-O of every operation, then solve 25 easy and 5 medium array, string, hash map, linked list and stack problems.

Build each structure yourself once, even though your language ships one, because that is where the costs stop being facts you memorised. When a problem says "have we seen this before" or "how many times", reach for a hash map first.