LeetCode Note Java 00070:Climbing Stairs
爬樓梯經典題,一步可以走一或兩階,n 階的樓梯有幾種走法。
題目
Climbing Stairs Easy
You are climbing a staircase. It takes n steps to reach the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?
我的解法
經典題,推算幾階之後會發現是費式數列的規則:第 n 階方法數 = (第 n - 1 階方法數) + (第 n - 2 階方法數)。
n=1 1=1
n=2 1+1=2
n=3 1+2=3
n=4 1+3+1=5
n=5 1+4+3=8
n=6 1+5+6+1=13 開始不好算
n=7 1+6+10+4=21 直接算錯
不過最難的地方就是要發現這規則,我自己是推算到n=6開始感到吃力,甚至可能算錯,所以這種找規律的題目最好在五組內就定下公式。
一維動態規劃:
n | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|
方法數 | 1 | 2 | 3 | 5 | 8 |
1 | class Solution { |