题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
该题目我在求解时没有想到特别好的办法,后来列出了前面几项找到了规律才求解出来,规律如下:
f(1) = 1; f(2) = 2; f(3) = 4; f(4) = 8 ... f(n) = 2*f(n-1);
有以上规律后就可以通过递归调用来解决该问题,AC代码如下:
public class Solution { public int JumpFloorII(int target) { if (target == 0) return 0; else if (target == 1) return 1; else if (target == 2) return 2; else return 2 * JumpFloorII(target - 1); } }