Skip to content

bee-san/Algorithms

Repository files navigation

Introduction to Data Structures & Algorithms with Leetcode

You can read this here https://beesec.gitbook.io/algorithms/

{% embed url="https://beesec.gitbook.io/algorithms/" %}

GitHub repo is here: https://github.com/bee-san/Algorithms

Welcome to Bee's guide to datastructures and algorithms! This is based on https://github.com/guyinatuxedo/nightmare

What you need to know

  • Learn data structures & algorithms (DS&A) using leetcode
  • Only learn DS&A that is used in real world
  • Learn why it works, not just how.
  • Sorted by how likely it is to show up in an interview and how vital that knowledge is to understanding other DS&A.
  • The problems are mostly medium - hards, I try to not include easy problems unless they are the first problem in a category.

This is a course on datastructures and algorithms based around leetcode problems. Learn DS&A via problems, with lengthy explanations.

This guide is ordered by how likely it is for that datastructure / algorithm to show up in an interview and how vital that knowledge is to understanding other data structures / algorithms.

Each section will lead with a leetcode style problem, and end with problems you can do on your own. This way, you only ever learn what is relevant.

All code will be in Python due to how easy it is to read. If you want to contribute more code, feel free to. This is on GitHub after all!

If you're okay with Python, but want to learn the advanced stuff check out my other book https://github.com/bee-san/Python-Zero-to-Hero

I also have my own blog, https://skerritt.blog that you may enjoy.

Resources

You should roughly know these things. I have linked to some of my own resources for you to learn them:

  • Python (Not an expert, you can use other languages or contribute more languages)
  • Big O notation (not an expert, just the basics)

For other resources you should see:

  • CTCI
  • MIT 6.006

How to contribute

  • Explain things more easily
  • Look through my Not Done Yet section and complete / improve them!

Why Leetcode and not X, Y, Z platform?

  1. Everyone knows Leetcode
  2. Leetcode discussion board is popping, and there's many Youtube videos about each platform
  3. AlgoExpert is not paying me to tell you that the scariest thing in the world is not knowing how to invert a binary tree in a coding interview yet.
  4. HackerRank's problems are too wordy for me to copy & paste.
  5. Companies use Leetcode
  6. Honestly if any other coding company came along and paid me to advertise their product I would it's just I used Leetcode. Deciding on what the best platform to use is another form of procrastination. I just picked the first one I saw and went with it.

Important Notes

  • Not all solutions are made by me (bee-san). This book is 100% open source and sometimes people on Leetcode forums have way bettter solutions than I do.