题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:3级台阶=2级台阶的跳法+1级台阶的跳法。因为3级台阶可以是2级台阶跳1级,也可以是1级台阶跳2级
public class Solution { public int JumpFloor(int target) { //斐波那契数列 //方法一 /* if(target==0){ return 0; } if(target==1){ return 1; } if(target==2){ return 2; } return JumpFloor(target-1)+JumpFloor(target-2); */ //方法二 /* if(target==0){ return 0; } if(target==1){ return 1; } if(target==2){ return 2; } int[] arr=new int[target+1]; arr[0]=0; arr[1]=1; arr[2]=2; for(int i=3;i<=target;i++){ arr[i]=arr[i-1]+arr[i-2]; } return arr[target]; */ //方法三 if(target==0){ return 0; } if(target==1){ return 1; } if(target==2){ return 2; } int a=1; int b=2; int c=0; for(int i=3;i<=target;i++){ c=a+b; a=b; b=c; } return c; } }
全部评论
(1) 回帖