力扣刷題筆記 動態規劃爬樓梯問題

2021-10-03 16:42:44 字數 1040 閱讀 1519

假設你正在爬樓梯。需要 n 階你才能到達樓頂。

每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?

注意:給定 n 是乙個正整數。

示例一

輸入: 2

輸出: 2

解釋: 有兩種方法可以爬到樓頂。

方法一: 1 階 + 1 階

方法二: 2 階

示例二

輸入: 3

輸出: 3

解釋: 有三種方法可以爬到樓頂。

方法一:1 階 + 1 階 + 1 階

方法二:1 階 + 2 階

方法三:2 階 + 1 階

它的最優解可以從其子問題的最優解來有效地構建。

第 i 階可以由以下兩種方法得到:

在第 (i-1)階後向上爬一階。

在第 (i-2)階後向上爬 22 階。

到達第 i 階的方法總數就是到第 (i-1)階和第 (i-2) 階的方法數之和。

dp[i] 表示能到達第 i 階的方法總數:dp[i]=dp[i-1]+dp[i-2]

#include

using

namespace std;

intmain()

int dp[n+1]

;//動態規劃需要從第三個台階開始

dp[1]

=1; dp[2]

=2;//排除只有乙個台階與兩個台階的特殊情況

飲水思源,力扣官方解答

力扣 動態規劃 爬樓梯

說明 假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2 輸出 2 解釋 有兩種方法可以爬到樓頂。1 階 1 階 2 階示例 2 輸入 3 輸出 3 解釋 有三種方法可以爬到樓頂。1 階...

爬樓梯問題 動態規劃

題目 乙個人每次只能走一層樓梯或者兩層樓梯,問走到第80層樓梯一共有多少種方法。解題思想 設走第i層樓梯需要dp i 中方法,走第i 1層樓梯需要dp i 1 中方法。則走第 i 1層樓梯的方法種數為dp i 1 dp i 種。實動態規劃解題的主要思想就是找出遞推式,然後利用子問題的解來求最後的最優...

動態規劃(爬樓梯問題)

問題 有 n 階台階,每次可以走 1 或 2 步,請問走到第 n 階台階一共有多少種走法?解 設有 f n 種走法 第一步 1 2 第二步 f n 1 f n 2 狀態方程 f n f n 1 f n 2 n 2 f 0 0,f 1 1,f 2 2 函式 int function int n int...