1、递归的方式
public class Solution {
public int JumpFloor(int target) {
if(target<1) return 0;
if(target==1) return 1;
if(target==2) return 2;
return JumpFloor(target-1)+JumpFloor(target-2);
}
}
2、自下而上的方式
public class Solution {
public int JumpFloor(int target) {
if(target<0) return 0;
if(target==1) return 1;
int num1=1;
int num2=2;
int result=2;
for(int i=2;i<target;i++)
{
result = num1 + num2;
num1 = num2;
num2 = result;
}
return result;
}
}
3、变态跳台阶问题,p78本题扩展
public class Solution {
public int JumpFloorII(int target) {
if(target<1) return 0;
else
return (int)Math.pow(2,target-1);
}
}
4、矩形覆盖问题 p79相关题目
public class Solution {
public int RectCover(int target) {
if(target<1) return 0;
if(target==1) return 1;
if(target==2) return 2;
return RectCover(target-1)+RectCover(target-2);
}
}