美文网首页算法每日一刷
70. 爬楼梯(Swift)

70. 爬楼梯(Swift)

作者: entre_los_dos | 来源:发表于2019-06-04 13:10 被阅读0次

题目

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。
1.  1 阶 + 1 阶
2.  2 阶

示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
1.  1 阶 + 1 阶 + 1 阶
2.  1 阶 + 2 阶
3.  2 阶 + 1 阶

到达第n阶有两种方式,
1、由n-1阶爬1阶
2、由n-2阶爬2阶
所以,到第n阶的方法应该是((n-1)阶的方法)+((n-2)阶的方法)

方法

func climbStairs(_ n: Int) -> Int {
        //爬楼梯
        if n<3 {
            return n
        }
        var l1 = 1 //第n-2
        var l2 = 2 //第n-1
        var result = 3 //第n
        
        for i in 3...n {
            
            result = l1 + l2
            l1 = l2
            l2 = result
        }
        return result
    }

最后

中间隔了好几天没做leetCode题,今天开始要继续坚持呀~不懒不拖延(不要被打脸)

相关文章

网友评论

    本文标题:70. 爬楼梯(Swift)

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