美文网首页Swift Developer
Swift-n阶台阶问题

Swift-n阶台阶问题

作者: FlyElephant | 来源:发表于2017-05-12 10:17 被阅读3次

题目:楼梯有n阶台阶,每次可以上1阶、2阶或3阶,计算上楼梯的方式有多少种.

解法一

<pre><code>` func countStepWays(n:Int) -> Int {

    if n < 0 {
        return 0
    } else if n == 0 {
        return 1
    } else {
        return countStepWays(n:n - 1) + countStepWays(n: n - 2) + countStepWays(n: n - 3)
    }
}`</code></pre>

解法二

<pre><code>` func countStepWays2(n:Int,map:inout [Int]) -> Int {

    if n < 0 {
        return 0
    } else if n == 0 {
        return 1
    } else if map[n] > -1 {
        return map[n]
    } else {
        map[n] = countStepWays2(n: n - 1, map: &map) + countStepWays2(n: n - 2, map: &map) + countStepWays2(n: n - 3, map: &map)
        return map[n]
    }
}`</code></pre>

测试代码:
<pre><code>var steps:Int = recursion.countStepWays(n: 10) var map:[Int] = [Int].init(repeating: -1, count: 11) var steps2:Int = recursion.countStepWays2(n: 10, map: &map) print("FlyElephant--跳10级台阶的跳法---\(steps)-----\(steps2)")</code></pre>

FlyElephant.png

相关文章

  • Swift-n阶台阶问题

    题目:楼梯有n阶台阶,每次可以上1阶、2阶或3阶,计算上楼梯的方式有多少种. 解法一 ` func coun...

  • leetcode --- 三步问题(DP)

    三步问题leetcode-golang 问题 有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。...

  • Leetcode climbing stairs

    爬楼梯问题,一次只能爬1阶,或2阶。问爬n阶台阶总共有多少种爬法。 是一个fibonacci数列。1级台阶1种,2...

  • 算法小节(一)

    二分法 乘阶 递归乘阶 N台阶,1个台阶,2个台阶,一共有几种上台阶方式 冒泡 快排

  • 递归和循环

    求和1+3!+ 5!+7!+.....+(2n-1)! 台阶问题,n个台阶,问有多少种不同的方法跨到第n阶,条件:...

  • 12_4台阶问题

    有n级台阶,一个人每次上一级或者两级,问有多少种走完n级台阶的方法。为了防止溢出,请将结果Mod 10000000...

  • 上台阶问题

    上台阶问题 有n阶台阶(n>0),小明一次可以上一步,或者两步,请问小明有多少种上台阶的方案? 设小明有种上台阶方...

  • 三步问题

    题目: 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少...

  • 动态规划w3-T19 面试题 08.01. 三步问题-简单

    题目 三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种...

  • 三步问题

    三步问题。有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。实现一种方法,计算小孩有多少种上楼梯...

网友评论

    本文标题:Swift-n阶台阶问题

    本文链接:https://www.haomeiwen.com/subject/hcdztxtx.html