Here you can find solutions for various coding/algorithmic problems and many useful resources for learning algorithms and data structures.
Also, this repo will be updated with new solutions and resources from time to time.
The learning resources are divided into 3 categories: Books, Training Sites, Other Resources.
Several books that have made an impression on me:
- Grokking Algorithms by Aditya Bhargava - The best book for complete beginners in algorithms! I wish this book existed when I started learning algorithms.
- Introduction to Algorithms by CLRS - This book is called the "bible textbook of algorithms" by many programmers.
- Algorithms by Robert Sedgewick & Kevin Wayne - These authors are instructors of the previously mentioned Coursera courses: Algorithms Part 1 and Algorithms Part 2. Also, this book has an excellent and free site with exercises, presentations, and examples.
- The Algorithm Design Manual by Steven Skiena - The book describes many advanced topics and algorithms and it focuses on real-life practical examples. This book has one of the best sites with resources (solutions, algorithms and data structures, python implementations).
- Algorithms by S. Dasgupta, C. Papadimitriou, and U. Vazirani - This book is an official book for algorithms and data structures classes in several famous universities.
- Competitive Programming 3 by Steven Halim & Felix Halim - A great book that prepares you for competitive programming (not for complete beginners). You can learn many things and tricks about competitive programming. But if your goal is to prepare for competitive programming then choose a faster language than Python, C/C++ (or Java, it's faster than Python but not like C/C++).
- Cracking the Coding Interview by Gayle Laakmann McDowell - A bit different from the previous books. Prepares you for coding interviews using great coding problems.
If the problems from LeetCode are not enough and you need more problems like those, you can find much more on these platforms:
- HackerRank
- CodeChef
- HackerEarth
- CodeForces
- Topcoder
- Project Euler
- SPOJ
- PEG
- Online Judge
- E-Olymp
- VJudge
- DMOJ
- USA CO
- Rosetta Code
- AtCoder
- LintCode
- Kattis
- CodeAbbey
- CS Academy
- Advent of Code
- Exercism
- CodeFu
- Mendo
- Z-Training
- Codewars
- Wolfram Challenges
- Google's Coding Competitions
- Cyber-dojo
- CodingBat
- CodeKata
- Daily Coding Problem
- Daily Interview Pro
- AlgoDaily
- Codility
- CoderByte
- AlgoExpert
- CodeSignal
- Edabit
- DevPost
- Brilliant
- Codingame
- CheckiO
- Kaggle
- Rosalind
- workat.tech
- Geeks For Geeks - The site which all interested in algorithms (no matter if beginners or experts) should know! YouTube channel with many useful videos.
- The Algorithms - Python - Great GitHub repo with many algorithms written in Python (Link from the same repo written in other programming languages).
- CP Algorithms - Great page with excellent explanations for various algorithms.
- Visualizers:
- USFCA Visualization Tool - Great tool for visualizing data structures and algorithms, created by the University of San Francisco.
- VisuAlgo - Another great tool for visualizing data structures and algorithms through animation.
- Algorithm Visualizer - Interactive online platform that visualizes algorithms from code. This platform is an open-source project, here you can find the source code.
- Courses and tutorials (but not from universities like the Courses section):
- Google - Intro to Data Structures and Algorithms - Free course on Udacity offered by Google.
- HackerEarth - Tutorials and Practice - Practice problems and learn about many algorithms and data structures needed for competitive programming.
- KhanAcademy - Algorithms - Good explanations for some basic algorithms.
- Tutorialspoint - Data Structures and Algorithms - Another platform with good explanations, also Tutorialspoint has free tutorials for almost everything related to CS!
- Programiz - Data Structures and Algorithms - One more platform which explains the data structures and algorithms in a simple and interesting way.
- Hackr.io - Data Structures and Algorithms Tutorials and Courses - Big collection of tutorials and courses.
- Scaler - Data Structures Tutorial - Interesting and interactive explanations of some basic data structures.
- YouTube playlists with tutorials: