剑指Offer:变态跳台阶(java版)
2019-06-26 10:28
197 查看
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
递归
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; } }
递归2
public class Solution { public int JumpFloorII(int target) { if(target<=0) return 0; if(target<=2) return target; return 2*JumpFloorII(target-1); } }
动态规划
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]; } }
数学法
2^(n-1)可以用位移操作进行,更快。
public class Solution { public int JumpFloorII(int target) { return 1<<--target; } }
相关文章推荐
- JAVA实现变态跳台阶问题(《剑指offer》)
- 变态跳台阶-剑指Offer(Java语言)
- JAVA实现变态跳台阶问题(《剑指offer》)
- 剑指offer(java代码)——变态跳台阶
- 《剑指offer》牛客网java题解-变态跳台阶
- Java变态跳台阶实现思路和代码
- 剑指offer-跳台阶and变态跳台阶and矩形覆盖-Java
- 《剑指offer》—9、变态跳台阶
- 【剑指offer】二,变态跳台阶(java实现)
- 剑指offer——变态跳台阶
- 剑指offer系列9之变态跳台阶
- 剑指offer(九)变态跳台阶
- 《剑指offer2》问题10 青蛙跳台阶&&变态跳台阶 Java实现
- 剑指offer面试题9——变态跳台阶
- 算法系列——变态跳台阶(剑指offer)
- 【剑指offer——JAVA实现】变态跳台阶
- 剑指offer(9)—变态跳台阶
- 剑指Offer(9)______变态跳台阶
- 【java】变态跳台阶
- 《剑指offer》牛客网java题解-跳台阶