Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit a4289bf

Browse files
committed
feat: 找硬币-递归版
1 parent 92265fc commit a4289bf

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
// https://juejin.im/post/5e86d0ad6fb9a03c387f3342
2+
3+
/**
4+
* 动态规划的前置思想,把问题拆分成子问题。
5+
* 比如f(15),可以拆分成min(
6+
* f(4) + 11 * 1,
7+
* f(10) + 5 * 1,
8+
* f(14) + 1 * 1
9+
* )
10+
* 然后这里的f(4)、f(10)、f(14) 进一步按照这个步骤值拆分。
11+
* @param {number} n
12+
*/
13+
function f(n) {
14+
if (n === 0) return 0;
15+
let min = Infinity;
16+
if (n >= 1) {
17+
min = Math.min(f(n - 1) + 1, min);
18+
}
19+
20+
if (n >= 5) {
21+
min = Math.min(f(n - 5) + 1, min);
22+
}
23+
24+
if (n >= 11) {
25+
min = Math.min(f(n - 11) + 1, min);
26+
}
27+
28+
return min;
29+
}
30+
31+
console.log(f(15)); // 3

0 commit comments

Comments
 (0)