https://leetcode.com/problems/climbing-stairs/
ways[n]: 跨越n个台阶的方法数量
跨越n个台阶的方法数 = 跨越[n-2]个台阶,再跨2个台阶 + 跨越[n-1]个台阶,再跨1个台阶。
递推式:
ways[n] = ways[n-1] + ways[n-2]
题解样例
int climbStairs(int n) {
int i = 0;
int ways[3] = {0,0,0};
for(i=1; i <= n; i++) {
if (i == 1) {
ways[0] = 1;
ways[2] = 1;
continue;
} else if (i == 2) {
ways[0] = 1;
ways[1] = 2;
ways[2] = 2;
continue;
} else if (i == 3) {
ways[0] = 1;
ways[1] = 2;
al/.ways[2] = 3;
continue;
}
ways[0] = ways[1];
ways[1] = ways[2];
ways[2] = ways[0] + ways[1];
}
return ways[2];
}