This repo contains my solutions to the challenges given in the course in Java Programming Language.
Instead of using multiple directories which I should have, I have gone with a different approach by naming the files according to their week in course.
Therefore files starting with W1 are from Week 1, W2 from Week 2 and so on.
- W1 - Programming Challenges
- Sum of Two Digits
- Maximum Pairwise Product
- W2 - Algorithmic Warmup
- Fibonacci Number
- Last Digit of Fibonacci Number
- Greatest Common Divisor (GCD)
- Least Common Multiple (LCM)
- Fibonacci Number Again
- Last Digit of Sum of Fibonacci Numbers
- Last Digit of Sum of Fibonacci Numbers Again
- Last Digit of The Sum of Squares of Fibonacci Numbers
- W3 - Greedy Algorithms
- Money Change
- Maximum Value of The Loot
- Car Fueling
- Maximum Advertisement Revenue
- Collecting Signatures
- Maximum Number of Prizes
- Maximum Salary
- W4 - Divide and Conquer
- Binary Search
- Majority Element
- Improving Quicksort
- Number of Inversions
- Organizing a Lottery
- Closest Points
- W5 - Dynamic Programming 1
- Money Change Again
- Primitive Calculator
- Edit Distance
- Longest Common Subsequence of Two Sequences
- Longest Common Subsequence of Three Sequences
- W6 - Dynamic Programming 2
- Maximum Amount of Gold
- Partitioning Souvenirs
- Maximum Value of an Arithmetic Expression
A pdf is also attached which explains the approches taken and also explains the problems in detail