每天一更 Leecode每日一题--climbStairs 爬楼梯

题目

在这里插入图片描述


解题

这题知识点是 斐 波 那 契 数 列 \color{#4285f4}{斐}\color{#ea4335}{波}\color{#fbbc05}{那}\color{#4285f4}{契}\color{#34a853}{数}\color{#ea4335}{列}

斐波那数列:
当数列是这样的:1、1、2、3、5、8、13、21、34、……
数学上就是递推的形式,公式为:
F ( 1 ) = 1 , F ( 2 ) = 1 , F ( n ) = F ( n − 1 ) + F ( n − 2 ) F(1)=1,F(2)=1, F(n)=F(n - 1)+F(n - 2) F(1)=1F(2)=1,F(n)=F(n1)+F(n2)
( n ≥ 3 , n ∈ N ∗ ) (n ≥ 3,n ∈ N*) n3nN

每次爬一或者两阶台阶,正好符合公式里的 ( n − 1 ) , ( n − 2 ) (n-1),(n-2) (n1),(n2)
其实用笨办法算个两个就知道数列是和斐波那契是符合的

class Solution:
    def climbStairs(self, n: int) -> int:
        if n == 1:
            return 1
        lst = [0,1,2]  # 这里就是初始值 因为列表是从0开始的就多设置了0
        for i in range(3, n+1):  # 数列是从3开始 range(n)是n-1,到不了n
            m = lst[i-1] + lst[i-2]
            lst.append(m)
        return lst[-1] 

结果:
在这里插入图片描述

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/search-insert-position
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

3.11
over

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值