Coursera-Algorithmic-Toolbox icon indicating copy to clipboard operation
Coursera-Algorithmic-Toolbox copied to clipboard

This repository contains all the solutions for the assignments of the course - Algorithmic Toolbox offered on Coursera.

Coursera: Algorithmic Toolbox

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)

  • Sum of Two Digits
  • Maximum Pairwise Product

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)

  • Binary Search
  • Majority Element
  • Improving QuickSort
  • Inversions
  • Organizing a Lottery
  • Closest Points

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)

  • Maximum Amount of Gold
  • Partitioning Souvenirs
  • Maximum Value of an Arithmetic Expression

Contributing

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