剑指offer--变态跳台阶

原创 2017年04月16日 13:58:04

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。


思路:
当n = 1 时, 只有一种跳法,即1阶跳:Fib(1) = 1;
当n = 2 时, 有两种跳的方式,一阶跳和二阶跳:Fib(2) = Fib(1) + Fib(0) = 2;
当n = 3 时,有三种跳的方式,第一次跳出一阶后,后面还有Fib(3-1)中跳法; 第一次跳出二阶后,后面还有Fib(3-2)中跳法;第一次跳出三阶后,后面还有Fib(3-3)中跳法
Fib(3) = Fib(2) + Fib(1)+Fib(0)=4;
当n = n 时,共有n种跳的方式,第一次跳出一阶后,后面还有Fib(n-1)中跳法; 第一次跳出二阶后,后面还有Fib(n-2)中跳法……………………..第一次跳出n阶后,后面还有 Fib(n-n)中跳法.
Fib(n) = Fib(n-1)+Fib(n-2)+Fib(n-3)+……….+Fib(n-n)=Fib(0)+Fib(1)+Fib(2)+…….+Fib(n-1)
又因为Fib(n-1)=Fib(0)+Fib(1)+Fib(2)+…….+Fib(n-2)
两式相减得:Fib(n)-Fib(n-1)=Fib(n-1) =====》 Fib(n) = 2*Fib(n-1) n >= 2


代码:

public class Solution {
    static int[] dp = new int[10000];

    public int JumpFloorII(int target) {
        if ( target <= 0){
            return 0;
        }

        if ( target == 1){
            dp[target] = 1;
            return dp[target];
        }

        if (target == 2){
            dp[target] = 2;
            return dp[target];
        }

        for ( int i = 3 ; i <= target ; i++){
            dp[i] =  2 * dp[i-1];
        }

        return dp[target];
    }
}
版权声明:本文为博主原创文章,未经博主允许不得转载。若需转载,请注明http://blog.csdn.net/qq_30091945 举报

相关文章推荐

【剑指Offer】:变态跳台阶

一:题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 二:解题思路  第n个台阶,可以直接跳到,可以由第一个,第二个,第3个,....

《剑指offer》——变态跳台阶

这是《跳台阶》题目的升级版,不止是每步都是1或者2,而是可以从1调到n,求其跳法。T: 题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

[剑指Offer]2.变态跳台阶

题目一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路用Fib(n)表示青蛙跳上n阶台阶的跳法数,设定Fib(0) = 1;当n = 1...

剑指offer——变态跳台阶

1. 问题描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 2.求解方法这道题目之所以称为是变态跳台阶,是因为它是跳台阶的一个变...

LeetCode(53) Climbing Stairs (剑指Offer->跳台阶、变态跳台阶)

Climbing Stairs (跳台阶)题目描述You are climbing a stair case. It takes n steps to reach to the top.Each ti...

剑指offer之跳台阶&变态跳台阶

跳台阶一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。分析本题就是一个简单的斐波那契数列问题。代码class Solution { public: i...
  • hjxzb
  • hjxzb
  • 2015-04-16 16:51
  • 362

[剑指Offer]1.跳台阶

题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入包括一个整数n(1 输出: 对应每...

《剑指offer》跳台阶

题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 分析:当n = 1, 只有1种跳法;当n = 2时,有2种跳法;当n = 3 时,有3种跳法...

《剑指offer》—8、跳台阶

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路: 1、如果你看到题目不知道从哪下手,采用笨方法首先尽量罗列出来,计算f(1) = 1...

《剑指Offer——跳台阶》

第九题:【跳台阶】 时间限制:1 秒 内存限制:32768K 题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。 输入: 输入可能包...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)