My works in free time to brush up algorithms and data structures, and to keep myself hands-on.
- python 3.x
- pip
pip install -r requirements.txt
To run tests:
cd tests
chmod +x ./test_run.sh
./test_run.sh
- Break down the original problem to smaller pieces and solve each of them, thus solve the whole problem.
- Memorization, trade memory for speed.
- Logic gates (XOR, NAND)
- Statistics, Probability, Computational Geometry
- Tail call optimization
- Backtrack
- Minimax, Maximin
- Traversal, sorting,
- Reversal, Peek n-th element
- Priority queue, FIFO, LIFO
- Longest unique substring, longest common substring
- Binary tree, n-ary tree, BST, balanced vs unbalanced tree.
- Hash function, double hashing, chain-link, hash-collision.
- DFS, BFS, Dijkstra's shortest path, Hamilton cycle, cyclic vs non-cyclic, directed vs. non-directed, uni-directional.
- Bloom filter, Trie, Skip list.