动态规划法:通过存储中间结果来避免重复计算,从而提高效率。定义一个数组dp,dp[i]表示爬到第i级楼梯的方法数。初始条件为dp[0]=1,dp[1]=1,然后通过状态转移方程dp[i] = dp[i-1] + dp[i-2]来计算dp[i]的值。最终结果为dp[n],其中n为楼梯的总级数。这种方法的时间复杂度为O(n),效率较高。...
运用动态规划来解决此题,首先要得到动态规划的状态转移方程。f(n)=f(n-1)+f(n-2); 步骤一:根据状态转移函数可知,到达目标楼梯n的分别是n-1走一步和n-2走两步之和,则当从最后一步往初始步进行规划。 步骤二:经过循环可得到最终的可能性,此题非常简单,没啥可说的 三. 执行结果 执行用时 :0 ms, 在...
因为再爬1阶就能到第n阶3.爬上 n−2阶楼梯的方法数量,因为再爬2阶就能到第n阶4.所以我们得到公式 dp[n] = dp[n-1] + dp[n-2] 同时需要初始化 dp[0]=1 和 dp[1]=1时间复杂度:O(n) 其中dp[n],表示爬上该楼梯的可能性。 dp[0],爬上0层,可能走法初始为1种 dp[1], 爬上1层,可能走...
再来看一种 DP 的解法,跟上面的解法很相近,不同在于 dp 数组长度为n,其中 dp[i] 表示到第 i+1 层的最小 cost,分别初始化 dp[0] 和 dp[1] 为 cost[0] 和 cost[1]。然后从 i=2 处开始遍历,此时更新思路是,要爬当前的台阶,肯定需要加上当前的 cost[i],那么还是要从前一层或者前两层的台阶上跳...