zoukankan      html  css  js  c++  java
  • 剑指OFFER的跳台阶问题

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

    (斐波那契数列的变形)

    F(1)=1;F(2)=2;

    F(n)=F(n-1)+F(n-2);

    class Solution {
    public:
        int jumpFloor(int number) {
            if(number<=0) return 0;
            if(number==1||number==2)
                return number;
            else return jumpFloor(number-1)+jumpFloor(number-2);
             
        }
    };

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

    (这个解法记不太清楚了)

    但是直接分析也可以解出来,n个台阶

    F(n)=1+F(n-1)+F(n-2)+````+F(1);

    1次跳n阶,最后一次跳1个,对应就是F(n-1),最后一次跳2个,对应就是F(n-2)·····

    class Solution {
    public:
        int jumpFloorII(int number) {
            int* array1=new int[number];
            array1[0]=1;
            array1[1]=2;
            for(int i=2;i<number;i++){
                int j=0,temp=0;
                while(j<i){
                    temp+=array1[j++];
                }
                array1[i]=temp+1;
            }
            return array1[number-1];
    
        }
    };
  • 相关阅读:
    负外边距--转载
    研究Dropbox Server端文件系统
    Bluetooth Profile for iPhone from the functional perspectives
    Somebody That I Used to Know
    复合查询
    聚合查询
    Filter查询
    ES基本查询
    ES版本控制
    ES基本操作
  • 原文地址:https://www.cnblogs.com/LUO77/p/5370233.html
Copyright © 2011-2022 走看看