时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 热度指数:621564
本题知识点: 递归
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
解答:
用的是动态规划思想,有子问题。具体定义回去细想一下。
这是之前写过的算法作业,主要考虑最后一个台阶的增加导致的走法的变化。
哦,还可以通过找规律方法求解,更简单,但是不想写。
class Solution {
public:
int jumpFloor(int number) {
if(number==1)return 1;
int lastsingle=1;
int lastdouble=0;
int methodnum=0;
while(number>=2){
methodnum=lastsingle*2+lastdouble;
int temp=lastsingle;
lastsingle=lastsingle+lastdouble;
lastdouble=temp;
number--;
}
return methodnum;
}
};
本文详细解析了青蛙跳台阶问题的动态规划解决方案,通过定义子问题并利用递归思想,探讨了不同跳法的数量计算。文章还提供了一个具体的C++实现代码示例。
2507

被折叠的 条评论
为什么被折叠?



