问题描述

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

算法思想:

本题若用普通的递归,则会超时,所以应该用动态规划,即递推思想,我们首先知道,走1层楼梯有1种方法,走两层楼梯有两种方法,走n层楼梯的方法总数应该是先走1层楼梯,剩下再走n-1层楼梯的方法总数加上先走2层楼梯,剩下再走n-2层楼梯的方法总数之和。

代码实现

public int climbStairs(int n) {int[] ways=new int[n+2];        //ways[i]表示当只有i层阶梯时的方法总数int result=1;ways[1]=1;           //爬1层楼梯的方法总数ways[2]=2;         //爬2层楼梯的方法总数for(int i=3;i<=n;i++){//当阶梯为第i层时,第i层的爬楼梯方法总数等于//先爬1层,然后爬剩下的i-1层的方法总数加上先爬两层,然后爬剩下的i-2层方法总数ways[i]=ways[i-1]+ways[i-2];}return ways[n];}

leetcode题解70-爬楼梯相关推荐

  1. 【LeetCode】70.爬楼梯

    题目 假设你正在爬楼梯,需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶,你有多少种不同的方法可以爬到楼顶呢? 题解 方法1:基本递归 算法 基本递归即初学递归时所学的最简单.最直观的方 ...

  2. LeetCode Algorithm 70. 爬楼梯

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

  3. leetcode系列-70. 爬楼梯

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

  4. leetcode算法70.爬楼梯

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

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

  6. leetcode - 70. 爬楼梯

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

  7. Python描述 LeetCode 70. 爬楼梯

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

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

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

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

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

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

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

最新文章

  1. Blender从头开始装配和动画制作低多边形风格的FPS手臂
  2. 三星招聘|计算机视觉、机器学习岗位研究员及实习生
  3. html android canvas兼容_快来!这里有5分钟看完马上学会的HTML基础大全
  4. 新基建与新消费碰撞的时代,日日顺如何以场景物流重新定义物流服务?
  5. 在C语言中以编程的方式获取函数名
  6. 使用SQLiteHelper创建数据库并插入数据
  7. Android 干货,强烈推荐
  8. FPGA开发全攻略—— 调试
  9. mybatis转义反斜杠_mybatis参数格式化异常:NumberFormatException: For input string:xx
  10. 登陆拦截拦截ajax,过滤器实现登录拦截需要注意的问题(AJAX请求的处理)
  11. linux查进程内存问题,关于linux下内存问题排查的工具
  12. 解决Android Studio默认AppTheme 没有lable标签,不显示等问题
  13. 腾讯面试题:如何实现一个类似新浪微博的短链接服务!
  14. 矩阵分析(三):矩阵的列空间、行空间与零空间
  15. c语言学习宝典怎么样,C语言学习宝典
  16. PuttyPsftp命令行实现自动登录
  17. BUUCTF-MISC-黑客帝国~喵喵喵
  18. mysql程序设计考试app_MySQL数据库设计与应用知到APP期末考试完整答案
  19. 使用短信接口进行通知
  20. 鸿蒙系统与苹果系统,华为的鸿蒙系统和苹果的操作系统,有什么区别?

热门文章

  1. 小米:停止2016年发布的红米手机升级推送
  2. 程序员8月薪资新鲜出炉,圈外人却在酸?
  3. php 添加 redis 扩展模块
  4. 360能卸载oracle,如何完全卸载Oracle
  5. nodejs发送电子邮件的更新
  6. 初步接触TinyXML2
  7. c语言 条件编译注释,c语言的预处理/条件编译,最全整理看这里
  8. 【flink】Flink 中的木桶效应:单个 subtask 卡死导致整个任务卡死
  9. 【java】java 一个线程占用多少内存
  10. 80-15-020-原理-零拷贝-Netty零拷贝的原理