剑指offer-变态跳台阶-Java版
变态跳台阶
http://www.nowcoder.com/questionTerminal/22243d016f6b47f2a6928b4313c85387
写在前面
代码说明:代码的下载地址: https://github.com/WuNianLuoMeng/Coding
视频说明:第一次以这样的形式录视频,如果有哪里说的不对,还请各位及时指出,谢谢~
变态跳台阶 视频链接
方法一:采用递推的方式,对于第i阶台阶的跳法的总次数,他是等于从第一阶到第i-1阶的情况数总和然后再加上从起点到终点的这一种情况数。
public int JumpFloorII(int target) { if (target == 1) { return 1; } int[] a = new int[target + 1]; int sum = 1; /// 设置一个sum变量去记录1到n-1阶的总的情况数 for (int i = 2; i <= target; i++) { a[i] = sum + 1; /// 对于第i阶台阶他是等于从第1阶到第i-1阶台阶的情况数之和然后再加上1(从起点到i阶的情况) sum = sum + a[i]; /// 需要去更新1到i阶的情况数 } return a[target]; }