zoukankan      html  css  js  c++  java
  • 剑指offer-跳台阶

    跳台阶

    一、题目描述

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

    二、算法思想

    这题与斐波那契数列几乎一致,写出头两项的值,然后知道每个n的跳法种数F(n)与它的前两项F(n-1)、F(n-2)有关。
    n层的楼梯,若第一次跳是跳一层,那么还有n-1层要跳,这n-1层就有F(n-1)种跳法;若第一次跳是跳两层,那么还有n-2层要跳,这n-2层就有F(n-2)种跳法。于是就有关系:F(n)=F(n-2)+F(n-1)

    三、算法实现

    3.1、递归版本

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

    3.2、非递归版本

    class Solution {
    public:
        int jumpFloor(int number) {
            int pp=1;
            int p=1;
            int result=1;
            for(int i=2;i<=number;i++){
                result=pp+p;
                pp=p;
                p=result;
            }
            return result;
        }
    };
    
    keep going
  • 相关阅读:
    [CQOI2017] 小Q的棋盘
    CF75D Big Maximum Sum
    Dockerfile
    docker镜像与容器的导出导入
    ubuntu安装glusterFS
    常用工具网站网址
    国内数据分析平台
    清理系统垃圾
    sql注入笔记
    shopify Liquid语言学习知识点总结
  • 原文地址:https://www.cnblogs.com/MarkKobs-blog/p/10353958.html
Copyright © 2011-2022 走看看