g0301_0400.s0322_coin_change.complexity.md Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java Show documentation
Show all versions of leetcode-in-java Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
**Time Complexity (Big O Time):**
1. The program uses dynamic programming to compute the minimum number of coins needed for each possible amount from 0 to `amount`.
2. It iterates through the `coins` array, which has 'm' elements, and for each coin, it iterates from the coin value to `amount`, which has 'n' values.
3. Inside the inner loop, there is a constant-time operation to update the `dp` array.
4. Therefore, the overall time complexity of the program is O(m * n), where 'm' is the number of coin denominations, and 'n' is the given `amount`.
**Space Complexity (Big O Space):**
1. The program uses an integer array `dp` of size `amount + 1` to store the minimum number of coins needed for each amount from 0 to `amount`. Therefore, the space complexity is O(amount).
In summary, the provided program has a time complexity of O(m * n) and a space complexity of O(amount), where 'm' is the number of coin denominations, 'n' is the given `amount`, and the space complexity depends on the value of `amount`.