def climb_stairs_dp(x): """ 使用动态规划(完全背包思路)计算爬楼梯的方法数 每次可以走1到x步,求走完x个台阶的总方法数 参数: x: 总台阶数 返回: 总走法数 """ dp数组定义:dp[i]表示走完i个台阶的总走法数 dp = [0] * (x + 1) # 创建从0到x的dp数组 初始化:0个台阶有1种走法(即不走) dp[0] = 1 外层循环:遍历所有台阶数(背包容量) for i in range(1, x + 1): 内层循环:遍历所有可能的步数(物品) for step in range(1, x + 1): 如果当前台阶数 >= 尝试的步数 if i >= step: 状态转移:当前走法数 += 减去当前步数后的走法数 dp[i] += dp[i - step] return dp[x] 返回x个台阶的总走法数
点赞 评论

相关推荐

05-01 22:41
中南大学 Java
点赞 评论 收藏
分享
牛客网
牛客企业服务