博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lintcode-111-爬楼梯
阅读量:5103 次
发布时间:2019-06-13

本文共 798 字,大约阅读时间需要 2 分钟。

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

样例

比如n=3,1+1+1=1+2=2+1=3,共有3中不同的方法

返回 3

标签

动态规划

思路

使用动态规划,用 dp[i] 记录走到第 i 步共有多少种方法

动态转移方程为:dp[i] = dp[i-1] + dp[i-2]
比如:
登上第1级:1种
登上第2级:2种
登上第3级:1+2=3种(前一步要么从第1级迈上来,要么从第2级迈上来)
登上第4级:2+3=5种(前一步要么从第2级迈上来,要么从第3级迈上来)
登上第5级:3+5=8种
登上第6级:5+8=13种
登上第7级:8+13=21种
登上第8级:13+21=34种
登上第9级:21+34=55种
登上第10级:34+55=89种

code

class Solution {public:    /**     * @param n: An integer     * @return: An integer     */    int climbStairs(int n) {        // write your code here        if(n <= 0) {            return 1;        }        vector
dp(n+1, 0); dp[1] = 1; dp[2] = 2; for(int i=3; i<=n; i++) { dp[i] = dp[i-1] + dp[i-2]; } return dp[n]; }};

转载于:https://www.cnblogs.com/libaoquan/p/7200461.html

你可能感兴趣的文章
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>
WPF动画设置1(转)
查看>>
基于node/mongo的App Docker化测试环境搭建
查看>>
java web 中base64传输的坑
查看>>
java 中的线程(一)
查看>>
秒杀9种排序算法(JavaScript版)
查看>>
Activiti入门 -- 环境搭建和核心API简介
查看>>
struts.convention.classes.reload配置为true,tomcat启动报错
查看>>