//該陣列每個元素的指標對應的是台階數,元素的值存放的是台階數對應的方法數
不管怎樣,陣列下標指標肯定是從0開始的,所以要考慮0.有0個台階,不需要爬,所以沒有方法數(但從斐波那契角度,dp[0]=1)
dp[1] = 1; //1階台階,只有一種方式(1)
2階台階,有兩種方式(1+1, 2), 因為題目設定n是正整數,所以n最小是1,此時如果定義dp的長度是int[n + 1],則length=2
而dp[2]實際對應的是第三個元素,超出length了,所以定義new int[n + 2]更合理
從第三個台階開始遍歷,第三個台階,是第二個台階的方法和第乙個台階的方法之和,第四個台階,是第三個台階和第二個台階方法之和,依此論推…
public
intclimbstairs
(int n)
return dp[n]
;}
斐波那契 70 爬樓梯
假設你正在爬樓梯。需要 n 階你才能到達樓頂。每次你可以爬 1 或 2 個台階。你有多少種不同的方法可以爬到樓頂呢?注意 給定 n 是乙個正整數。示例 1 輸入 2輸出 2解釋 有兩種方法可以爬到樓頂。1.1 階 1階 2.2 階 示例 2 輸入 3輸出 3解釋 有三種方法可以爬到樓頂。1.1 階 ...
斐波那契數列和爬樓梯問題
n階樓梯,每次爬一階或者兩階,求總共有多少中方法爬n階樓梯?include stdafx.h include using namespace std int louti int n b 30 c 30 申請陣列用於儲存結果 intmax 30 能求出的結果位數最大為30位,可任意設定 int j,k...
動態規劃(斐波那契系列) 爬樓梯
遞迴和動態規劃都是將原問題拆成多個子問題然後求解,他們之間最本質的區別是,動態規劃保留了子問題的解,避免了重複計算。70.climbing stairs easy 題目描述 有 n 階樓梯,每次可以上一階或者兩階,求有多少種上樓梯的方法。思路分析 定義乙個dp陣列儲存上樓梯的方法數,dp i 表示走...