博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Leetcode:70.爬楼梯
阅读量:3709 次
发布时间:2019-05-21

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

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

解题思路:

递归+动态规划(dp)。dp[n]=dp[n-1]+dp[n-2]。边界条件dp[1]=1,dp[2]=2。

C++代码
class Solution {
public:
    int climbStairs(int n) {
        if (n == 1) return 1;
        if (n == 2) return 2;
        int data1 = (dp[n - 1] > 0 ? dp[n - 1] : climbStairs(n - 1));
        int data2 = (dp[n - 2] > 0 ? dp[n - 2] : climbStairs(n - 2));
        dp[n] = data1 + data2;
        return dp[n];
    }
private:
    unordered_map<int, int>dp;
};

 

转载地址:http://xrfjn.baihongyu.com/

你可能感兴趣的文章
STM32—常用的几种伪指令宏
查看>>
STM32—位带操作
查看>>
Keil5中出现中文乱码的解决方法
查看>>
【写一个操作系统】1—hello world重出江湖
查看>>
【写一个操作系统】2—VMware创建软盘映像
查看>>
STM32—SPI读写FLASH
查看>>
【写一个操作系统】3—汇编语言学习及Makefile入门
查看>>
const关键字用法
查看>>
extern关键字用法
查看>>
红外遥控小车
查看>>
FTP(vsftp)服务器的搭建配置以及访问控制
查看>>
python实现的简单点对点(p2p)聊天
查看>>
nwjs node-webkit 桌面app自定义窗体事件 nwjs托盘tray的实现
查看>>
后端使用pyecharts画图并输出为图片保存
查看>>
nodejs日志读取 日志查找 日志刷新
查看>>
GB2312汉字拼音对照表
查看>>
手机 用户界面和多媒体 版面有价值问题整理 j2medev com 0406更新
查看>>
SP 梦网masterSP模式下的sp生存
查看>>
dotNET ThreadPool 对象中没有足够的自由线程来完成操作 的现象和解决办法
查看>>
转 FTP搜索引擎的设计与实现(优化版)
查看>>