假設(shè)你正在爬樓梯弓叛。需要 n 階你才能到達(dá)樓頂。
每次你可以爬 1 或 2 個(gè)臺(tái)階蛉艾。你有多少種不同的方法可以爬到樓頂呢科贬?
注意:給定 n 是一個(gè)正整數(shù)。
示例 1:
輸入: 2
輸出: 2
解釋: 有兩種方法可以爬到樓頂武翎。
1. 1 階 + 1 階
2. 2 階
示例 2:
輸入: 3
輸出: 3
解釋: 有三種方法可以爬到樓頂烈炭。
1. 1 階 + 1 階 + 1 階
2. 1 階 + 2 階
3. 2 階 + 1 階
思路:第n階是從第n-1階(走一步到n)或者第n-2階(一次走兩步到n)上來(lái)的,
所以第n的方法數(shù)等于到n-1和到n-2的方法數(shù)的和宝恶,而n==1時(shí)有一種符隙,而n==2時(shí)后兩種
class Solution {
public:
int climbStairs(int n) {
int first=1;
int second=2;
if(n==1)
return 1;
if(n==2)
return 2;
int sum;
for(int i=2;i<n;i++)
{
sum=first+second;
first=second;
second=sum;
}
return sum;
}
};