力扣刷题——递归思想

小楚辞
2024-09-12 / 0 评论 / 13 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年09月12日,已超过73天没有更新,若内容或图片失效,请留言反馈。

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

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

示例 1:

输入:n = 2
输出:2
解释:有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶
    示例 2:

输入:n = 3
输出:3
解释:有三种方法可以爬到楼顶。

  1. 1 阶 + 1 阶 + 1 阶
  2. 1 阶 + 2 阶
  3. 2 阶 + 1 阶

    class Solution:
     def climbStairs(self, n: int) -> int:
         stair = {1: 1, 2: 2}
         for i in range(3, n + 1):
             stair[i] = stair[i - 1] + stair[i - 2]
         return stair[n]
    
    solution=Solution()
    print(solution.climbStairs(4)) #input number

509
斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:

F(0) = 0,F(1) = 1
F(n) = F(n - 1) + F(n - 2),其中 n > 1
给定 n ,请计算 F(n) 。

示例 1:

输入:n = 2
输出:1
解释:F(2) = F(1) + F(0) = 1 + 0 = 1
示例 2:

输入:n = 3
输出:2
解释:F(3) = F(2) + F(1) = 1 + 1 = 2
示例 3:

输入:n = 4
输出:3
解释:F(4) = F(3) + F(2) = 2 + 1 = 3

class Solution:
    def fib(self, n: int) -> int:
        if n == 0:
            return 0
        elif n == 1:
            return 1
        else:
            return self.fib(n - 1) + self.fib(n - 2)

solution=Solution()
print(solution.fib(1)) #input number
1

评论

博主关闭了当前页面的评论
您是第 7907 位访客