剑指Offer-9-变态跳台阶

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//思路:因为n级台阶,第一步有n种跳法:跳1级、跳2级、到跳n级
跳1级,剩下n-1级,则剩下跳法是f(n-1)
跳2级,剩下n-2级,则剩下跳法是f(n-2)
所以f(n)=f(n-1)+f(n-2)+...+f(1)
class Solution {
public:
//动态规划
int jumpFloorII(int number) {
int* A = new int[number+1];//数组每一位对应跳法数

int i, j;
A[0] = 0;//initialization
A[1] = 1;
for (i = 2;i <= number;i++) {
A[i] = 1;//由于可以一次跳级台阶,所以默认有一种跳法
for (j = 0;j < i;j++)
A[i] += A[j];
}
return A[number];
}
};

----\(˙<>˙)/----赞赏一下吧~