Prove safety Offer: metamorphosis jump stairs (java version)

Title Description

A frog can jump on a Class 1 level, you can also hop on level 2 ...... n It can also jump on stage. The frog jumped seeking a total of n grade level how many jumps.

Recursion

public class Solution {
    public int JumpFloorII(int target) {
        int sum=0;
        if(target<=0)
            return 0;
        if(target<=2)
            return target;
        for(int i=1;i<target;i++){
            sum +=JumpFloorII(target-i);
        }
        return sum+1;
    }
}

Recursive 2

public class Solution {
    public int JumpFloorII(int target) {
        if(target<=0)
            return 0;
        if(target<=2)
            return target;
        return 2*JumpFloorII(target-1);
    }
}

Dynamic Programming

public class Solution {
    public int JumpFloorII(int target) {
        if(target<=2)
            return target;
        int[] dp=new int[target+1];
        dp[0]=0;
        dp[1]=1;
        dp[2]=2;
        for(int i=3;i<=target;i++){
            int j=i;
            while(j>0){
                dp[i]+=dp[--j];
            }
            dp[i]+=1;
        }
        return dp[target];
    }
}

Mathematical Method

2 ^ (n-1) can be displaced by operation faster.

public class Solution {
    public int JumpFloorII(int target) {
      return 1<<--target;
      }
}

Guess you like

Origin blog.csdn.net/qq_43165002/article/details/93717531