Skip to content

Commit e948ebe

Browse files
authored
Create 2189-number-of-ways-to-build-house-of-cards.js
1 parent 6b0a7f3 commit e948ebe

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/**
2+
* @param {number} n
3+
* @return {number}
4+
*/
5+
const houseOfCards = function(n) {
6+
const memo = Array.from({ length: n + 1 }, () => Array(n + 2).fill(null))
7+
return helper(n, n + 1)
8+
9+
function helper(remain, preRow) {
10+
if(remain === 0 || remain === 2) return 1
11+
if(memo[remain][preRow] != null) return memo[remain][preRow]
12+
let res = 0
13+
for(let i = 5; i <= remain && i < preRow; i += 3) {
14+
res += helper(remain - i, i)
15+
}
16+
return memo[remain][preRow] = res
17+
}
18+
};

0 commit comments

Comments
 (0)