Giter Club home page Giter Club logo

algorithm_templates's Introduction

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

  • Thanks to all good problems from LeetCode. In addition, LeetCode has a great OJ platform, and really suitable to do functional and performance test.
  • Many templates and tricks are enlightened by discussions in LeetCode, thanks to all the code masters.
  • Special thanks to Stefan Pochmann, really learned a lot from him.

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

[email protected]

algorithm_templates's People

Contributors

recnac-itna avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.