Leetcode 70. 爬楼梯 动态规划 c语言
假设你正在爬楼梯。需要 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语言相关推荐
- leetcode 70. 爬楼梯(C语言)
题目 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解释: ...
- 84. Leetcode 70. 爬楼梯 (动态规划-基础题)
假设你正在爬楼梯.需要 n 阶你才能到达楼顶.每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢?示例 1:输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶. 1. 1 阶 ...
- LeetCode 70.爬楼梯(动态规划)
题目描述 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 输出: 2 解 ...
- LeetCode 70爬楼梯71简化路径72编辑距离(dp)
新人公众号(求支持):bigsai 专注于Java.数据结构与算法,一起进大厂不迷路! 算法文章题解全部收录在github仓库bigsai-algorithm,求star! 关注这个潇洒青年一起飞,回 ...
- Python描述 LeetCode 70. 爬楼梯
Python描述 LeetCode 70. 爬楼梯 大家好,我是亓官劼(qí guān jié ),在[亓官劼]公众号.CSDN.GitHub.B站等平台分享一些技术博文,主要包括前端开发.pyt ...
- LeetCode 70. 爬楼梯 (递归斐波那契 | 动态规划)
70. 爬楼梯 解法1 (暴力递归) 推出递推式子:f(n) = f(n - 1) + f(n - 2) 是一个斐波那契数列,用递归 class Solution {public int climbS ...
- LeetCode - 70. 爬楼梯(人肉递归、动态规划)2
70 . 爬楼梯 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1: 输入: 2 ...
- leetcode - 70. 爬楼梯
70. 爬楼梯 -------------------------------------- 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以 ...
- 变形版汉诺塔:LeetCode:70爬楼梯
70. 爬楼梯 题目链接:70:爬楼梯 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数. 示例 1 ...
最新文章
- 如何充分利用JavaScript(ES6)中的解构功能
- 曾经百度大佬吹过的牛实现了,看完这个,带你搞定AI前沿技术
- 【MM配置】Pricing 采购定价 1
- TurboShop应用特性(2009V3.6)
- 字符集GBK升级UTF8
- cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...
- 泡泡玛特上市首日涨79.22%报69港元 总市值953亿港元
- 网络安全:教你五招服务器安全维护技巧
- 树莓派保持网络连接shell脚本
- win10 外接显示器后出现input signal out of range
- Elasticsearch怎样实现自定义分词
- 传销式招聘!被骗到东南亚的程序员到底有多惨?
- Python爬虫——Scrapy 的基本使用
- 4. PyQt5的主要模块
- OSChina 端午节乱弹 ——假期余额不足,大家端午快乐
- 美图秀秀网页版新功能上线 新增磨皮祛痘
- iOS vs Android 系统架构
- word自动设置表格格式
- MTK-call history operate
- 电磁兼容(EMC)的标准与测试内容
热门文章
- python self的含义
- 《一个程序员的奋斗史》正式上架~
- 2013年1季度中国汽车品牌口碑研究报告 ——自主A级车
- firefox扩展开发(二):用XUL创建窗口控件
- JS中获得窗口属性的方法
- linux内核定义注册设备,linux字符型设备驱动 一.注册设备并创建设备文件
- stm32 vscode 编译_vscode+gcc开发stm32环境搭建
- php 入口文件引入取别名,php命名空间别名/导入
- 2.4 使用来自不同分布的数据,进行训练和测试-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
- 那些很骚很酷很有内涵的话