概述
可以跳一阶台阶,也可以跳2阶,求跳n 阶的方法
递归:
public int jumpfloor(int n){
if (n==0){
return 0;
} else if (n==1){
return 1;
} else if(n==2){
return 2;
}else{
return jumpfloor(n-2)+jumpfloor(n-1);
}
}
n代表还有多少没跳的
f(0)=0;
f(1)=1;
f(2)=f(2-1)+f(2-2);//当还剩下两阶时,紧接着还可以在跳一阶,两阶
f(3)=f(3-1)+f(3-2);
2.非递归,迭加
//自底向上的动态规划
public long long solution(int number)
{
//题目保证 number 最大为100
static long long Counter[101] = {0};
Counter[1] = 1;
Counter[2] = 2;
static int calculatedIndex = 2;
if(number <= calculatedIndex)
return Counter[number];
//防止下标越界
if(number > 100)
number = 100;
for(int i = calculatedIndex + 1; i <= number; i++)
{
Counter[i] = Counter[i - 1] + Counter[i - 2];
}
calculatedIndex = number;
return Counter[number];
}
最后
以上就是听话豆芽为你收集整理的跳台阶问题【递归+非递归】的全部内容,希望文章能够帮你解决跳台阶问题【递归+非递归】所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复