887. 鸡蛋掉落
解法一:dp
class Solution:
def superEggDrop(self, K: int, N: int):
memo = dict()
#定义状态转移函数
def dp(K, N) -> int:
# base case
if K == 1: return N
if N == 0: return 0
# 避免重复计算
if (K, N) in memo:
return memo[(K, N)]
res = float('INF')
# 穷举所有可能的选择
for i in range(1, N + 1):
res = min(res,
max(
dp(K, N - i), #没碎
dp(K - 1, i - 1) #碎
) + 1 #在第i楼扔了一次
)
# 记入备忘录
memo[(K, N)] = res
return res
return dp(K, N) #调用dp函数改进
重写状态转移
最后更新于

