You are climbing a stair case. It takes n steps to reach to the top.

Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

Example 1:

Input: 2
Output: 2
Explanation: There are two ways to climb to the top.

  1. 1 step + 1 step
  2. 2 steps

Example 2:

Input: 3
Output: 3
Explanation: There are three ways to climb to the top.

  1. 1 step + 1 step + 1 step
  2. 1 step + 2 steps
  3. 2 steps + 1 step

Constraints:
1 <= n <= 45

Solution in python:

class Solution:
    def climbStairs(self, n: int) -> int:
        if n <= 2:
            return n
        a1 = 1
        a2 = 2
        for i in range(3, n+1):
            an = a1 + a2
            a1 = a2
            a2 = an
        return an
最后修改日期: 2020年10月15日

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。