Introduction

Hello, world! 👋

After struggling for so much time to prepare for coding interviews, I have decided to help you (and myself) by creating this website.

My aims are to:

  1. Explain the common algorithms and data structures used in the FAANG interviews.
  2. Explain which Python components to use in order to solve such problems.
  3. Collect all the free resources to study a certain topic more in depth.
  4. Collect the solutions of some LeetCode problems. I will start with the famous Grind 75 list, and then add more problems based on your feedback.

If you are a novice, probably, this is not the best place to start with, but you can still use it later, once you are more familiar with coding interviews concepts.

Again, the main idea is to minimize the amount of time you would need to re-prepare for a new interview. In fact, for those of you who do not know, typically, if one interview does not go well, you would need to wait some time before re-applying for the same company. The amount of time varies from company to company, but it can go from 6 months to 1 or more years. If you do not practice enough during this period, you can lose all the progress you have made, and you might also lose some internal brain connections that are allowing you to solve problems in no-time (when you are well-trained).

At least, that's what I have experienced. You will surely not start from zero every time, but this website can help you to minimize the time you need to revise things you already know!

Contribute

Currently, the repository is still private, so, if you want to contribute or fix something, you can write me at mmicu.github00@gmail.com or join the public Discord channel.

Please, indicate if you want to be cited in the Contributors section. If so, you can also provide your name and either one link (e.g. GitHub, X, etc.) or your email.

Support

As you might imagine, writing the content of this website required a lot of my spare time, plus, endless hours of reviews. As well as some money for the domain and other maintenance costs.

If you want so support me or just thank me, you can donate via Patreon or buy me a coffee.

Official Channels

Apart from the public Discord channel and private Discord one, there is no social media I am using to advertise or communicate for algo-ds.com.

So, please, avoid using other communication sources and report them to me at mmicu.github00@gmail.com.

Additional Information

The website has been written by using the mdBook utility.

Moreover, all the Python code you see here is for version 3.8 and earlier, which will impact the type hits. This is because all the Python function signatures that you find in LeetCode have such notation. In fact, we are going to use:

from typing import List

x: List[int] = [1, 2, 3]

Instead of:

x: list[int] = [1, 2, 3]

The latter is only available from Python >= 3.9.

Check this mypy type hints cheat sheet for more information.

Hidden code

It looks like the following snippet contains a single line of code. However, if you go with your mouse over the snippets, a couple of icons will appear at the top right. The one with the eye symbol will allow you to show the hidden code:

s = "hello, world"

print(s)