假设你正在爬楼梯。需要 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 阶

这道题写一个例子就能发现和斐波那契数列数列极为相似。算法课上介绍递归的时候就出现过,使用递归解决斐波那契数列问题。不过,虽然递归可解。f(n) = f(n-1)+f(n-2),但是存在大量重复计算,计算f3的时候需要计算f2和f1,计算f4的时候,需要计算f3和f2。这样算下去,存在大量重复计算开销。因此,可以使用数字保存中间的计算结果,和动态规划类似。这道题应该当作动态规划的练习题。dp方程为dp[n] = dp[n-1] + dp[n-2],一目了然。

//典型的斐波那契数列数列,采用dp方法。
//dp[n] = dp[n-2] + dp[n-1];int climbStairs(int n){int *dp, i;//特殊情况处理if (n < 2)return 1;dp = (int *)calloc(n+1, sizeof(int));//边界条件初始化dp[0] = 0;dp[1] = 1;dp[2] = 2;for (i = 3; i <= n; i++)dp[i] = dp[i-2] + dp[i-1];return dp[n];
}

=============================================================================================

Linux应用程序、内核、驱动开发交流讨论群(745510310),感兴趣的同学可以加群讨论、交流、资料查找等,前进的道路上,你不是一个人奥^_^。

Leetcode 70. 爬楼梯 动态规划 c语言相关推荐

  1. leetcode 70. 爬楼梯(C语言)

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

  2. 84. Leetcode 70. 爬楼梯 (动态规划-基础题)

    假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶. 1. 1 阶 ...

  3. LeetCode 70.爬楼梯(动态规划)

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

  4. LeetCode 70爬楼梯71简化路径72编辑距离(dp)

    新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...

  5. Python描述 LeetCode 70. 爬楼梯

    Python描述 LeetCode 70. 爬楼梯   大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开发.pyt ...

  6. LeetCode 70. 爬楼梯 (递归斐波那契 | 动态规划)

    70. 爬楼梯 解法1 (暴力递归) 推出递推式子:f(n) = f(n - 1) + f(n - 2) 是一个斐波那契数列,用递归 class Solution {public int climbS ...

  7. LeetCode - 70. 爬楼梯(人肉递归、动态规划)2

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

  8. leetcode - 70. 爬楼梯

    70. 爬楼梯 -------------------------------------- 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以 ...

  9. 变形版汉诺塔:LeetCode:70爬楼梯

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

最新文章

  1. 如何充分利用JavaScript(ES6)中的解构功能
  2. 曾经百度大佬吹过的牛实现了,看完这个,带你搞定AI前沿技术
  3. 【MM配置】Pricing 采购定价 1
  4. TurboShop应用特性(2009V3.6)
  5. 字符集GBK升级UTF8
  6. cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...
  7. 泡泡玛特上市首日涨79.22%报69港元 总市值953亿港元
  8. 网络安全:教你五招服务器安全维护技巧
  9. 树莓派保持网络连接shell脚本
  10. win10 外接显示器后出现input signal out of range
  11. Elasticsearch怎样实现自定义分词
  12. 传销式招聘!被骗到东南亚的程序员到底有多惨?
  13. Python爬虫——Scrapy 的基本使用
  14. 4. PyQt5的主要模块
  15. OSChina 端午节乱弹 ——假期余额不足,大家端午快乐
  16. 美图秀秀网页版新功能上线 新增磨皮祛痘
  17. iOS vs Android 系统架构
  18. word自动设置表格格式
  19. MTK-call history operate
  20. 电磁兼容(EMC)的标准与测试内容

热门文章

  1. python self的含义
  2. 《一个程序员的奋斗史》正式上架~
  3. 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
  4. firefox扩展开发(二):用XUL创建窗口控件
  5. JS中获得窗口属性的方法
  6. linux内核定义注册设备,linux字符型设备驱动 一.注册设备并创建设备文件
  7. stm32 vscode 编译_vscode+gcc开发stm32环境搭建
  8. php 入口文件引入取别名,php命名空间别名/导入
  9. 2.4 使用来自不同分布的数据,进行训练和测试-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
  10. 那些很骚很酷很有内涵的话