剑指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个,....

九度OJ1389剑指offer面试题9变形:变态跳台阶

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

变态跳台阶[剑指offer]之python实现

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。题目链接# -*- coding:utf-8 -*- class Solution...

剑指offer:(9)递归和循环:变态跳台阶

一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法 关于本题,前提是n个台阶会有一次n阶的跳法。分析如下: f(1) = 1 f...

【剑指Offer面试题】 九度OJ1389:变态跳台阶

题目链接地址: http://ac.jobdu.com/problem.php?pid=1389题目1389:变态跳台阶时间限制:1 秒内存限制:32 兆特殊判题:否提交:2331解决:1332 ...

JAVA实现变态跳台阶问题(《剑指offer》)

最近在刷《剑指offer》里的编程题,但是网上关于《剑指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码(当然也有部分是借鉴了网...

第1题 变态跳台阶【剑指Offer编程题】

b# 前言 这是一个新的部分,主要是刷剑指offer上的编程题,记录自己的解法,如果看到比较赞的解法,也会放出来,共同学习。题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。...

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

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

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》读书笔记09:变态青蛙跳

题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。 求该青蛙跳上一个n级的台阶总共有多少种跳法。 解题思路因为青蛙一次可以跳1,2,3…n级台阶。 1. 求F(1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:剑指offer--变态跳台阶
举报原因:
原因补充:

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