变态跳台阶(递归 循环)
来源:互联网 发布:扩散指数的算法 编辑:程序博客网 时间:2024/06/05 00:38
题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
f(1) = 1
f(2) = f(2-1) + f(2-2)
f(3) = f(3-1) + f(3-2) + f(3-3)
...
f(n) = f(n-1) + f(n-2) + f(n-3) + ... + f(n-(n-1)) + f(n-n)
f(n-1) = f(0) + f(1)+f(2)+f(3) + ... + f((n-1)-1) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2)
f(n) = f(0) + f(1) + f(2) + f(3) + ... + f(n-2) + f(n-1) = f(n-1) + f(n-1)
可以得出:
f(n) = 2*f(n-1)
思路一:递归
public class Solution { public int JumpFloorII(int target) { if (target <= 2) return target; else return 2 * JumpFloorII(target - 1); }}
思路二:递推
public class Solution { public int JumpFloorII(int target) { int f = 1; int fn = 1; if (target <= 2) return target; else { for (int i = 2; i <= target; i++) { fn = 2 * f; f = fn; } } return fn; }}
阅读全文
0 0
- 变态跳台阶(递归 循环)
- 【牛客网】递归循环之变态跳台阶
- 剑指offer: 变态跳台阶(循环与递归)
- 剑指offer:(9)递归和循环:变态跳台阶
- 剑指offer_递归与循环---变态跳台阶
- 《剑指offer》刷题笔记(递归和循环):变态跳台阶
- 跳台阶(递归 循环)
- 剑指offer--变态跳台阶(巧用递归)
- 跳台阶问题 + 变态跳台阶问题 解法(动态规划递归 + 非递归)
- 跳台阶问题+变态跳台阶问题(动态递归+非递归)
- 跳台阶问题(变态跳台阶)
- 跳台阶问题(变态跳台阶)
- 跳台阶问题(变态跳台阶)
- 跳台阶问题(变态跳台阶)
- 跳台阶(不变态)
- 跳台阶 && 变态跳台阶
- 跳台阶 && 变态跳台阶 (递归和非递归)算法整理
- 变态跳台阶(java版)
- Studio插件
- bzoj 3450(期望dp)
- TCP/IP 协议简介
- Python从零开始系列连载(1)——安装环境
- 利用Aspose.Cells组件导出图片
- 变态跳台阶(递归 循环)
- centos systemctl用法
- NVIDIA Tegra-TK1串口驱动代码初探
- LeetCode120. Triangle 动态规划
- linux硬链接与软链接
- 洛谷10月月赛R2·浴谷八连测R3 -Chtholly-P3932 浮游大陆的68号岛
- L1-025. 正整数A+B
- maven 项目之间的依赖关系
- C# Winform 常用控件介绍