• 70. Climbing Stairs


    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?

    Note: Given n will be a positive integer.

    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

    my code:

    class Solution {
    public:
        int climbStairs(int n) {
            vector<int> res(n+3, 0);
            for (int i = 0; i < n-1; ++i) {
                res[i+1] += res[i] + 1;
                res[i+2] += res[i] + 1;
            }
            return res[n];
        }
    };
    

    Runtime: 0 ms, faster than 100.00% of C++ online submissions for Climbing Stairs.

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    Kruskal算法
    拓扑排序
    邻接表有向图
    邻接矩阵的有向图
    邻接表无向图
    邻接矩阵无向图
    斐波那契堆
    二项堆
    斜堆(待补充)
    项目中maven依赖无法自动下载
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9831939.html
Copyright © 2020-2023  润新知