//思路:因为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]; } };