This repository contains all solutions for the course Algorithmic Toolbox offered on Coursera. The assignment solutions are in Python3.
Disclaimer: The below solutions are for reference only. Please design and implement your own algorithms to pass the course.
Week 1- Programming Challenges (PDF)
Week 2- Algorithmic Warm-up (PDF)
- Fibonacci Number
- Last Digit of a Large Fibonacci Number
- Greatest Common Divisor
- Least Common Multiple
- Fibonacci Number Again
- Last Digit of the Sum of Fibonacci Numbers
- Last Digit of the Sum of Fibonacci Numbers Again
- Last Digit of the Sum of Squares of Fibonacci Numbers
Week 3- Greedy Algorithms (PDF)
- Money Change
- Maximum Value of the Loot (Fractional Knapsack)
- Maximum Advertisement Revenue (Maximum Dot Product)
- Collecting Signatures (Covering Segments by Points)
- Maximum Number of Prizes (Different Summands)
- Maximum Salary (Largest Number)
Week 4- Divide and Conquer (PDF)
Week 5- Dynamic Programming 1 (PDF)
- Money Change Again
- Primitive Calculator
- Edit Distance
- Longest Common Subsequence of Two Sequence
- Longest Common Subsequence of Three Sequence
Week 6- Dynamic Programming 2 (PDF)
All contributions are welcome. Just make a PR. Below is a list of general improvements that need to be added that I would love help with:
- Improve documentation
- Clean up code (adding docstrings)
- Better algorithms that reduce time complexity