Algorithm Templates

Description

Templates and examples in Python3, including common data structure & algorithms.

I have collected and summarized general code templates for particular algorithms, and add most typical examples to help make better use of it. All the examples come from LeetCode, and I have attached the problem id and brief description.

"Stop Trying to Reinvent the Wheel"

So I try my best to find the commonality in problems, solutions and codes. When I study, I have summarized templates for future use.

First I intended to use it for myself, and now I realize maybe it is good enough to share with people who also need it.

Supplementary explanation

  1. It is written in Python3, but easy to extend to other languages, such as Java, C++. Just replace the python syntactic sugar and advanced tricks, maybe just less concise.

  2. With my limited time and ability, here only covers common data structure & algorithms. Almost suitable for interview, but insufficient for competition.

  3. I have tried my best to collect and summarize the most general and best-practice templates in particular area, but this version may not be the best solution. Or, it's really the best performance and most concise solution, but it's not the suitable for you. Within acceptable performance, it is the best practice for you when you use it most conveniently.

  4. Code templates is written by python with some pseudo code, so I use self and add stub functions to pass compiler's check. You should replace them with your particular logic according to the comments.

Why Python?

"life is short, you need python"

With the help of Python's advanced features, it can let us ignore redundant grammar, and totally focus on algorithm and logic.

Besides, it is popular, and I'm the big fan of this language myself.

Who is this for?

  1. If you will have interviews soon, and plan to review data structure & algorithm. You can review by these summary, and improve practical skills by typical examples.
  2. If you want to study algorithm by practice, here you can understand the key point in templates, and practice the examples from easy to hard, to understand it deeper.
  3. If you are a LeetCoder, you want to focus on your weak topics, and have no idea to which problems to solve, here is well classified and provides the most typical examples. Or, you are too tired to find a fastest and elegant answer in discussion, here can save your time.
  4. If you are a python beginner, and want to enhance your advanced pythonic skills, you can focus on python tricks. Hope you will find useful and elegant techniques here.

Thanks to

MIT License

Feel free to use, copy, modify, merge or publish. just add a reference, please.

If it helps you or you like it, you can star or share it. thanks : )

I'm glad if you want to contribute to make it better.

Reference

Generalization Discussions scraping from LeetCode

I scrape the most popular discussions and filter the ones which summarized a general approach to particular domain, such as backtracking, dynamic programming, sliding window, bit manipulation.

Well worth reading:

Contact

recnac@foxmail.com