LeetCode爬楼梯

简介: 解决LeetCode上“爬楼梯”问题的动态规划方法,其中每次可以爬1或2个台阶,目标是计算到达楼顶的不同方法数。

LeetCode爬楼梯

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n
是一个正整数。
示例 1: 输入: 2 输出: 2
示例 2: 输入: 3 输出: 3

**1阶  1种
  2阶  2种
  3阶  3种
  4阶  5种
  f(n) = f(n-1)+f(n-2)
**
int climbStairs(int n){


    //递归会超时
    // if(n == 0 || n == 1 || n == 2)
    //     return n;
    // return climbStairs(n-1)+climbStairs(n-2);

    //动态规划
    if(n<3)
        return n;
    int dp[n+1];    //定义一个缓存数组保存前n阶楼梯的值
    dp[0] = 0;
    dp[1] = 1;
    dp[2] = 2;
    for(int i = 3; i < n + 1; i++)  //n阶  dp[n]
    {
        dp[i] = dp[i-1]+dp[i-2];  //给数组赋值
    }
    return dp[n];
}
相关文章
ZYNQ-AXI总线的信号接口要求以及时序关系
ZYNQ-AXI总线的信号接口要求以及时序关系
1537 0
ZYNQ-AXI总线的信号接口要求以及时序关系
|
9月前
|
人工智能 Anolis
活动推荐:2025 RISC-V 生态大会将在北京召开,龙蜥受邀参展
一同探讨行业趋势及合作契机,齐心共筑 RISC-V 的“芯”未来。
|
存储
【洛谷 P1255】数楼梯 题解(递归+记忆化搜索+高精度)
这是一个使用动态规划解决的“数楼梯”问题。给定楼梯数`N`,求不同上楼方式的数量。程序通过递归函数`f()`计算,其中`f(x) = f(x - 1) + f(x - 2)`,初始条件`f(1) = 1`,`f(2) = 2`。考虑到数据规模可能很大,使用了高精度加法运算。样例输入`4`,输出`5`。代码中定义了一个存储中间结果的向量`mem`,并提供了一个用于显示高精度数的`printv()`函数。
284 0
|
12月前
|
算法 Python
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果
在Python编程中,分治法、贪心算法和动态规划是三种重要的算法。分治法通过将大问题分解为小问题,递归解决后合并结果;贪心算法在每一步选择局部最优解,追求全局最优;动态规划通过保存子问题的解,避免重复计算,确保全局最优。这三种算法各具特色,适用于不同类型的问题,合理选择能显著提升编程效率。
223 2
|
存储 算法 开发者
【Python 基础补充 range()】一文带你了解range()函数的作用
【Python 基础补充 range()】一文带你了解range()函数的作用
1469 0
WK
|
数据采集 XML 安全
常用的Python网络爬虫库有哪些?
Python网络爬虫库种类丰富,各具特色。`requests` 和 `urllib` 简化了 HTTP 请求,`urllib3` 提供了线程安全的连接池,`httplib2` 则具备全面的客户端接口。异步库 `aiohttp` 可大幅提升数据抓取效率。
WK
443 1
|
机器学习/深度学习 数据采集 数据可视化
Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
Python实现支持向量机SVM分类模型线性SVM决策过程的可视化项目实战
idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
idea启动java服务报错OutOfMemoryError: GC overhead limit exceeded解决方法
3789 1
|
存储 SQL 人工智能
揭秘数据库技术:核心原理、应用场景与未来趋势
一、引言 在数字化和智能化的今天,数据库技术已经成为企业和组织不可或缺的基础设施
|
算法 搜索推荐 Python
探索Python中的推荐系统:混合推荐模型
探索Python中的推荐系统:混合推荐模型
971 1
下一篇
开通oss服务