我是靠谱客的博主 羞涩朋友,最近开发中收集的这篇文章主要介绍牛客网刷题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级的台阶总共有多少种跳法。所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部