zoukankan      html  css  js  c++  java
  • Swift解算法——台阶问题

    题目:一个台阶总共有n级,如果一次可以跳1级,也可以跳2级。
    求总共有多少总跳法,并分析算法的时间复杂度。
     
    首先对题目进行分析:
    台阶一共有n级
    因此当n = 1时——只有一种跳法
          当n = 2时——有1、1 或者 2  两种跳法
      当n = 3时——有 1、1、1 或者2、1或者1、2三种跳法
         。。。。。。。。。。。。。。。。。。。。。。。。。
      因此
      当n = k时——
      有 f(k-1)+f(k-2)种跳法
    分析到这里,程序用哪种方式设计便一目了然——递归
     
    //*************************************************//

    func jump(var n:Int)->Int{

      //若只有一个台阶,返回1(表示一种跳法)

        if(n == 1){

            return 1

        }

      //若有两个台阶,返回2(表示两种跳法)

        if(n == 2){

            return 2

        }

        else{

            var temp = jump(n - 1) + jump(n - 2) //递归

            return temp

        }    

    }

    //*************************************************//

  • 相关阅读:
    Python爬虫 -- 抓取电影天堂8分以上电影
    Kotlin & Vertx 构建web服务
    js promise 风格编程
    Java Config 下的Spring Test方式
    (转)SpringSecurity扩展User类,获取Session
    maven 打包 xml文件
    EL表达式的操作符
    mysql 去除空格
    spring security
    GoogleApis 屏蔽
  • 原文地址:https://www.cnblogs.com/IOSwang/p/4741117.html
Copyright © 2011-2022 走看看