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

题目

每天一更 Leecode每日一题--climbStairs 爬楼梯_第1张图片


解题

这题知识点是 斐 波 那 契 数 列 \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] 

结果:
每天一更 Leecode每日一题--climbStairs 爬楼梯_第2张图片

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

3.11
over

你可能感兴趣的:(python,python,leetcode,算法)