扔鸡蛋
思路:
自底向上,动态规划,规划出最短次数
function dpTop(n, k) {
const dp = new Array(k + 1).fill(0).map(() => new Array(n+1).fill(0));
for (let i = 0; i <= n; i++) {
dp[1][i] = i;
}
for (let i = 0; i <= k; i++) {
dp[i][1] = 1;
}
for (let i = 2; i <= k; i++) {
for (let j = 1; j <= n; j++) {
for (let x = 1; x <= j; x++) {
const temp = 1 + Math.max(dp[i - 1][x - 1], dp[i][j - x]);
dp[i][j] = dp[i][j] === 0 ? temp : Math.min(dp[i][j], temp);
}
}
}
return dp[k][n];
}
const res4 = dpTop(100, 2);
console.log('========res4=========', res4);