Data Structures and Algorithms Resources
This page is a compilation of (almost-entirely) free resources for people to use. The categories are taken from neetcode since we’re currently (as of writing) following this study plan as a community.
Recommended General Resources
- General:
- Data Structures & Algorithm Analysis by Clifford A. Shaffer
- UC Berkeley: CS 61B Spring 2024
- VisuAlgo: A collection of DSA animated visualizations.
- More advanced:
- Algorithms for Competitive Programming (cp-algorithms.com)
- CP1
- CSES Competitive Programming Books List
- Competitive Programmer’s Handbook is on there, and is free to download a full PDF copy of.
- systemic’s blog: A mix of content, but has plenty of DSA content to check out!
- USACO Guide
- Paid resources:
- Grokking Algorithms by Aditya Y. Bhargava: A more beginner-oriented book covering a good selection of topics.
- Introduction to Algorithms by Cormen, Leiserson, Rivest, and Stein
For more resources, check out More General Resources.
Arrays & Hashing
- systemic’s blog: Cyclic Sort
- systemic’s blog: Knuth–Morris–Pratt
- systemic’s blog: Min/Max Queues
- systemic’s blog: Rabin-Karp
Two Pointers
Sliding Window
Stack
- AlgoMonster: Monotonic Stack/Deque Intro
- systemic’s blog: Monotonic Stack Algorithms
Binary Search
Linked List
Trees
- systemic’s blog: Binary Lifting
Tries
Heaps/Priority Queues
- sim’s notes: Binary heaps implementation with Python
Backtracking
Graphs
- systemic’s blog: Finding bridges in an offline graph
- systemic’s blog: Shortest Path Algorithms
- systemic’s blog: Strongly Connected Components
- systemic’s blog: Topological Sort
Dynamic Programming
- sim’s notes: Currently a work-in-progress, but it should still be useful!
- systemic’s blog
Greedy Algorithms
- systemic’s blog: Greedy Scheduling Heuristics
Intervals
Math and Geometry
Bit Manipulation
More Topics
- systemic’s blog: Fenwick Trees
- systemic’s blog: Segment Trees
- systemic’s blog: Sparse Tables
More General Resources
- Booksite for Algorithms, 4th Edition
- Codeforces Blogs
- vaibhav1997’s list
- There’s many more. Browse through the website!
- DeriveIt: Has some leetcode solutions with commentary.
- Topcoder Tutorials
- UC Berkley:
- UNSW
- All the COMP2521 code is in C though, so it might not be as useful if you’re not comfortable with C.
- COMP2521 21T2 Lecture Recordings
- COMP2521 Notes by Luka Kerr
- COMP4128 23T3 Resource List: Resources for competitive programming!
- YouTube