【Offer】[10-2] 【青蛙跳阶问题】
2024-09-26 18:08:40
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路分析
- 其实就是斐波那契数列,
- f(1)=1 f(2) =2 ,n= 3时,两种情况:
- 青蛙先跳一个台阶,后面还有两个台阶,所以跳法就为f(2),
- 青蛙先跳两个台阶,后面还有1个台阶,所以跳法就为f(1),
- 综上 n=3 时 跳法为f(1)+f(2)
Java代码
public class Offer010_2 {
public static void main(String[] args) {
}
public static int JumpFloor(int target) {
return Solution1(target);
}
/**
* 解法一 斐波那契数列 非递归
* @param target
* @return
*/
private static int Solution1(int target) {
if(target == 1) {
return 1;
}
if(target ==2) {
return 2;
}
int fm2 = 1;
int fm1 = 2;
int fN = 0;
for(int i=3;i<=target;i++) {
fN =fm2+fm1;
fm2 = fm1;
fm1 = fN;
}
return fN;
}
}
代码链接
最新文章
- HDU 5063 Operation the Sequence(仔细审题)
- DOCTYPE的重要性
- NSCache详解
- Spring MVC入门实战(一)
- iOS-UIView category
- 理解 Android Build 系统
- php -l 检查文件是否语法错误
- 使用userdel命令删除Linux用户
- 1048. Find Coins (25)
- Python之路,Day26-----暂无正在更新中
- 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅶ(延伸:堆排序的实现)
- Mac和Xcode常用的快捷键
- Hadoop系列:(一)hdfs文件系统的基本操作
- 关于 Senparc.Weixin.Cache.Redis 引用的 StackExchange.Redis 版本不匹配的反馈测试
- vtime.hpp
- SpringBoot之基础
- 分布式队列celery 异步----Django框架中的使用
- Redhat学习(此为草稿,正式笔记之后存放)
- razor视图使用三元表达式
- Codechef STREDUC Reduce string Trie、bitset、区间DP