You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: exercises/practice/change/.approaches/dynamic-programming/content.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -44,25 +44,25 @@ It minimizes the number of coins needed by breaking down the problem into smalle
44
44
45
45
## Explanation
46
46
47
-
1.**Initialize Coins Usage Tracker**:
47
+
### Initialize Coins Usage Tracker
48
48
49
-
- If the `grandTotal` is negative, an exception is thrown immediately.
50
-
- We create a list `coinsUsed`, where each index `i` stores the most efficient combination of coins that sum up to the value `i`.
51
-
- The list is initialized with an empty list at index `0`, as no coins are needed to achieve a total of zero.
49
+
- If the `grandTotal` is negative, an exception is thrown immediately.
50
+
- We create a list `coinsUsed`, where each index `i` stores the most efficient combination of coins that sum up to the value `i`.
51
+
- The list is initialized with an empty list at index `0`, as no coins are needed to achieve a total of zero.
52
52
53
-
2.**Iterative Dynamic Programming**:
53
+
### Iterative Dynamic Programming
54
54
55
-
- For each value `i` from 1 to `grandTotal`, we explore all available coin denominations to find the best combination that can achieve the total `i`.
56
-
- For each coin, we check if it can be part of the solution (i.e., if `coin <= i` and `coinsUsed[i - coin]` is a valid combination).
57
-
- If so, we generate a new combination by adding the current coin to the solution for `i - coin`. We then compare the size of this new combination with the existing best combination and keep the one with fewer coins.
55
+
- For each value `i` from 1 to `grandTotal`, we explore all available coin denominations to find the best combination that can achieve the total `i`.
56
+
- For each coin, we check if it can be part of the solution (i.e., if `coin <= i` and `coinsUsed[i - coin]` is a valid combination).
57
+
- If so, we generate a new combination by adding the current coin to the solution for `i - coin`. We then compare the size of this new combination with the existing best combination and keep the one with fewer coins.
58
58
59
-
3.**Result**:
59
+
### Result
60
60
61
-
- After processing all values up to `grandTotal`, the combination at `coinsUsed[grandTotal]` will represent the most efficient solution.
62
-
- If no valid combination exists for `grandTotal`, an exception is thrown.
61
+
- After processing all values up to `grandTotal`, the combination at `coinsUsed[grandTotal]` will represent the most efficient solution.
62
+
- If no valid combination exists for `grandTotal`, an exception is thrown.
63
63
64
64
## Time and Space Complexity
65
65
66
-
-The time complexity of this approach is **O(n * m)**, where `n` is the `grandTotal` and `m` is the number of available coin denominations. This is because we iterate over all coin denominations for each amount up to `grandTotal`.
66
+
The time complexity of this approach is **O(n * m)**, where `n` is the `grandTotal` and `m` is the number of available coin denominations. This is because we iterate over all coin denominations for each amount up to `grandTotal`.
67
67
68
-
-The space complexity is **O(n)** due to the list `coinsUsed`, which stores the most efficient coin combination for each total up to `grandTotal`.
68
+
The space complexity is **O(n)** due to the list `coinsUsed`, which stores the most efficient coin combination for each total up to `grandTotal`.
0 commit comments