我是靠谱客的博主 羞涩朋友,最近开发中收集的这篇文章主要介绍牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
分析:
其实和普通的只能跳一个和两个台阶的思路是一样的,都是为了求迭代表达式。
普通跳台阶(只能跳1或2):
假设我第一次跳1个,那么剩下的次数就是f(n-1)
假设我第一次跳2个,那么剩下的次数就是f(n-2)
所以f(n)=f(n-1)+f(n-2),然后再加上前两项的特殊项就可以得到通用表达式
变态跳台阶(可以跳1到n):
假设我第一次跳1个,那么剩下的次数就是f(n-1)
假设我第一次跳2个,那么剩下的次数就是f(n-2)
。。。。
假设我第一次跳n个,那么剩下的次数就是f(n-n)=f(0)
所以f(n)=f(n-1)+f(n-2)+。。。f(0)
然后f(n-1)=f(n-2)+f(n-3)+。。。f(0),它正好是上面表达式除了f(n-1)以外的式子
所以f(n)=2*f(n-1),然后再加上前两项特殊项就可以了
得到通式:
1 ,(n=0 )
f(n) = 1 ,(n=1 )
2*f(n-1),(n>=2)
代码:
public class Solution {
public int JumpFloorII(int target) {
if (target <= 0) {
return -1;
} else if (target == 1) {
return 1;
} else {
return 2 * JumpFloorII(target - 1);
}
}
}
最后
以上就是羞涩朋友为你收集整理的牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。的全部内容,希望文章能够帮你解决牛客网刷题java之变态跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复