题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法台阶。
题目解析:
假设有n个台阶,第n个台阶一定会站上去,其他n - 1个台阶则是有两种情况,有或者没有。所以这个问题就转化了。
代码如下:
public class Solution {
public int JumpFloorII(int target) {
if(target <= 0) {
return -1;
}
if(target == 1) {
return 1;
}
//前n-1个台阶可以选择在这个上或者不在这个上即一个台阶有2中选项,所以一共有2乘n-1种情况
return 1<<(target - 1);
}
}