
获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
平台:Android
系统版本:10
掘金版本:v6.0.1 (Build-5a3a25f0)
设备:Xiaomi
问题描述:
在别人的沸点发送评论,粘贴以下代码,第二行到第四行的中间部分缺失了,效果可以看我发的评论。
//根据例子,3+2和 2+3是两种结果,说明不同值之间和顺序有关
const calcCount = (n, m = 2) => {
if (n < m) return 0;
let res = 0;
// dp[i][j]表示j个球分为i组
const dp = new Array(n + 1).fill("").map(() => new Array(n + 1).fill(0));
for (let i = 0; i <= n; i++) {
dp[i][0] = 1;
dp[1][i] = 1;
}
for (let i = 1; i <= n; i++) {
for (let j = 1; j <= n; j++) {
let c = 0;
for (let k = 0; k <= j; k++) {
c += dp[i - 1][k];
}
dp[i][j] = c;
}
}
for (let i = 1; i * m <= n; i++) {
//i表示能分多少组
//原问题转化为 v个球分为i组,考虑顺序的问题
const v = n - m * i;
res += dp[i][v];
}
return res;
};
系统版本:10
掘金版本:v6.0.1 (Build-5a3a25f0)
设备:Xiaomi
问题描述:
在别人的沸点发送评论,粘贴以下代码,第二行到第四行的中间部分缺失了,效果可以看我发的评论。
//根据例子,3+2和 2+3是两种结果,说明不同值之间和顺序有关
const calcCount = (n, m = 2) => {
if (n < m) return 0;
let res = 0;
// dp[i][j]表示j个球分为i组
const dp = new Array(n + 1).fill("").map(() => new Array(n + 1).fill(0));
for (let i = 0; i <= n; i++) {
dp[i][0] = 1;
dp[1][i] = 1;
}
for (let i = 1; i <= n; i++) {
for (let j = 1; j <= n; j++) {
let c = 0;
for (let k = 0; k <= j; k++) {
c += dp[i - 1][k];
}
dp[i][j] = c;
}
}
for (let i = 1; i * m <= n; i++) {
//i表示能分多少组
//原问题转化为 v个球分为i组,考虑顺序的问题
const v = n - m * i;
res += dp[i][v];
}
return res;
};
展开
5
点赞
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章