File tree 3 files changed +60
-0
lines changed
3 files changed +60
-0
lines changed Original file line number Diff line number Diff line change @@ -161,6 +161,27 @@ function waysToChange(n: number): number {
161
161
}
162
162
```
163
163
164
+ ``` swift
165
+ class Solution {
166
+ func waysToChange (_ n : Int ) -> Int {
167
+ let mod = Int (1e9 + 7 )
168
+ let coins = [25 , 10 , 5 , 1 ]
169
+ var f = Array (repeating : Array (repeating : 0 , count : n + 1 ), count : 5 )
170
+ f[0 ][0 ] = 1
171
+
172
+ for i in 1 ... 4 {
173
+ for j in 0 ... n {
174
+ f[i][j] = f[i - 1 ][j]
175
+ if j >= coins[i - 1 ] {
176
+ f[i][j] = (f[i][j] + f[i][j - coins[i - 1 ]]) % mod
177
+ }
178
+ }
179
+ }
180
+ return f[4 ][n]
181
+ }
182
+ }
183
+ ```
184
+
164
185
<!-- tabs: end -->
165
186
166
187
### 方法二:动态规划(空间优化)
Original file line number Diff line number Diff line change @@ -173,6 +173,27 @@ function waysToChange(n: number): number {
173
173
}
174
174
```
175
175
176
+ ``` swift
177
+ class Solution {
178
+ func waysToChange (_ n : Int ) -> Int {
179
+ let mod = Int (1e9 + 7 )
180
+ let coins = [25 , 10 , 5 , 1 ]
181
+ var f = Array (repeating : Array (repeating : 0 , count : n + 1 ), count : 5 )
182
+ f[0 ][0 ] = 1
183
+
184
+ for i in 1 ... 4 {
185
+ for j in 0 ... n {
186
+ f[i][j] = f[i - 1 ][j]
187
+ if j >= coins[i - 1 ] {
188
+ f[i][j] = (f[i][j] + f[i][j - coins[i - 1 ]]) % mod
189
+ }
190
+ }
191
+ }
192
+ return f[4 ][n]
193
+ }
194
+ }
195
+ ```
196
+
176
197
<!-- tabs: end -->
177
198
178
199
### Solution 2: Dynamic Programming (Space Optimization)
Original file line number Diff line number Diff line change
1
+ class Solution {
2
+ func waysToChange( _ n: Int ) -> Int {
3
+ let mod = Int ( 1e9 + 7 )
4
+ let coins = [ 25 , 10 , 5 , 1 ]
5
+ var f = Array ( repeating: Array ( repeating: 0 , count: n + 1 ) , count: 5 )
6
+ f [ 0 ] [ 0 ] = 1
7
+
8
+ for i in 1 ... 4 {
9
+ for j in 0 ... n {
10
+ f [ i] [ j] = f [ i - 1 ] [ j]
11
+ if j >= coins [ i - 1 ] {
12
+ f [ i] [ j] = ( f [ i] [ j] + f[ i] [ j - coins[ i - 1 ] ] ) % mod
13
+ }
14
+ }
15
+ }
16
+ return f [ 4 ] [ n]
17
+ }
18
+ }
You can’t perform that action at this time.
0 commit comments