##四、变态条楼梯
###题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
###分析
也是斐波那契数列问题,根据上述的思路,可以得到
f(n)=f(n-1)+f(n-2)+f(n-3)+...+f(0),由此就有两种思路解答
(1)接着上式推出=> f(n)=2f(n-1)
(2)通过创建一个数组,进行循环,把f(0)、f(1)、...、f(n-1)的值存入数组中,然后把数组元素的值都相加得到f(n)
###代码
(1)

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

(2)

public class Solution {
public int JumpFloorII(int target) {
if(target <= 2){
return target;
}
int[] dp = new int[target + 1]; // 0 号不使用
dp[1] = 1; //跟普通的 pre2 一个意思
dp[2] = 2; //跟普通的 pre1 一个意思
for (int i = 3; i <= target; i++){
for (int j = i - 1; j >= 1; j--){
dp[i] += dp[j];
}
dp[i]++;
}
return dp[target];
}
}

最新文章

  1. 易语言调用windows消息函数
  2. request.getHeader所想到的
  3. iOS开发 百度坐标点的计算
  4. github命令
  5. 配置NTP时间服务器
  6. &lt;php&gt;统计整个文件夹的大小
  7. perl 爬取同花顺数据
  8. C语言cgi(1)
  9. lambda表达式Expression&lt;Func&lt;Person, bool&gt;&gt; 、Func&lt;Person, bool&gt;区别
  10. unity3D加密如何做到防编译?
  11. 高级软件工程第四次作业(C++)
  12. linux基础-系统安装教程篇(centos6.5)
  13. 发现环 (拓扑或dfs)
  14. ranch流程处理图
  15. mysql案例-sysbench安装测试
  16. 使用redis镜像
  17. 【c++基础】accumulate
  18. IOS下 input 被软键盘方案遮盖问题解决
  19. IT项目经理岗位职责(转)
  20. poj 1692(动态规划)

热门文章

  1. 计算机网络&amp;http学习笔记持续整理
  2. 分布式-网络通信-IO-基础(1)
  3. 使用 vuetron 调试 mpvue 项目
  4. JMH基准测试框架
  5. docker-compose常用命令(持续更新...)
  6. Java中Redis的简单入门
  7. leetcode-easy-math-326. Power of Three
  8. fastjson解析list ,object中含有list, object中含有map
  9. Arrays类与Collections类
  10. 【转】微信接口$GLOBALS[&#39;HTTP_RAW_POST_DATA&#39;]接收不到值