• LeetCode-70-爬楼梯


    LeetCode-70-爬楼梯

    题目

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

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

    注意:给定 n 是一个正整数。

    示例 1:
    ​
    输入: 2
    输出: 2
    解释: 有两种方法可以爬到楼顶。
    1.  1 阶 + 1 阶
    2.  2 阶
    ​
    示例 2:
    ​
    输入: 3
    输出: 3
    解释: 有三种方法可以爬到楼顶。
    1.  1 阶 + 1 阶 + 1 阶
    2.  1 阶 + 2 阶
    3.  2 阶 + 1 阶
    

    思路解析

    最近都在刷动态规划的题,这种经典问题不容错过;

    按照动态规划的思想,到达第i个台阶的只能从i-1个台阶或i-2个台阶出发,故设定状态转移方程:

    [dp[i]=dp[i-1]+dp[i-2] ]

    其实本质上就是斐波那契数列,轻松解决,还获得双100,开心:)

    执行结果:
    ​
    通过
    ​
    执行用时 :0 ms, 在所有 C++ 提交中击败了100.00% 的用户
    ​
    内存消耗 :6.1 MB, 在所有 C++ 提交中击败了100.00%的用户
    

    代码

    class Solution {
    public:
        int climbStairs(int n) {
            if (n <= 3)
                return n;
            int pre=1, now=2, res=0;
            for (int i=3; i<n+1; i++)
            {
                res = pre+now;
                pre = now;
                now = res;
            }
            return res;
        }
    };
    
  • 相关阅读:
    解决vue项目route使用history模式,tomcat部署刷新url 404问题
    更新
    Mac Anaconda 安装
    Mac python 环境配置
    Mac Python PyQt5 环境搭建
    Python 百分比计算
    Python __init__.py 文件使用
    Python redis 简单介绍
    python Django 创建应用
    python Django 项目创建
  • 原文地址:https://www.cnblogs.com/sakurapiggy/p/13021067.html
Copyright © 2020-2023  润新知