code第一部分数组:第十七题 爬楼梯问题

You are climbing a stair case. It takes n steps to reach to the top.
Each time you can either climb 1 or 2 steps. In how many distinct ways can you climb to the top?

分析
设 f(n) 表示爬 n 阶楼梯的不同方法数,为了爬到第 n 阶楼梯,有两个选择:
• 从第 n − 1 阶前进 1 步;
• 从第 n − 1 阶前进 2 步;
因此,有 f(n) = f(n − 1) + f(n − 2)。
这是一个斐波那契数列。

两种方法,一是迭代,二是递归

#include <iostream>using namespace std;int climbStairs(int n)
{int prev = 0;int cur = 1;for(int i = 1; i <= n ; ++i){int tmp = cur;cur = prev + cur;prev = tmp;}return cur;
}int climbStairs2(int n)
{if (n<=0){return 0;}if (n==1){return 1;}if (n==2){return 2;}if (n>2){int ans=climbStairs2(n-1)+climbStairs2(n-2);return ans;}
}int main()
{int stairs=4;int ans=climbStairs(stairs);cout<<"ans1 is "<<ans<<endl;int ans2=climbStairs2(stairs);cout<<"ans2 is "<<ans2<<endl;return 0;
}

转载于:https://www.cnblogs.com/tao-alex/p/6443048.html

code第一部分数组:第十七题 爬楼梯问题相关推荐

  1. code第一部分数组:第二十二题 偶数次中查找单独出现一次的数

    code第一部分数组:第二十二题 偶数次中查找单独出现一次的数 Given an array of integers, every element appears twice except for o ...

  2. code第一部分数组:从有序数组中移除重复的数据

    code第一部分数组:从有序数组中移除重复的数据 第二题 从有序数组中移除重复的数据,但是可以保留2个重复的数. For example, Given sorted array A = [1,1,1, ...

  3. 【算法】1041- 图解 LeetCode第 70 题爬楼梯问题

    最近开始努力研究算法,遇到这个很有意思的题目,因为从中复习到斐波那契数列,又通过某篇资料,查到中科院官网,看了很多科普文章.深挖下去能看到很多东西. 本着热爱分享的初衷,整理本文与大家分享,题目本身没 ...

  4. 《LeetCode力扣练习》第70题 爬楼梯 Java

    <LeetCode力扣练习>第70题 爬楼梯 Java 一.资源 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶 ...

  5. python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例

    网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...

  6. 面试经典算法题--爬楼梯 的六种解法

    题目描述: 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 六种解法: /*** 爬楼梯问题其实质就是斐波那契数列!*/ public cla ...

  7. leetcode算法题--爬楼梯

    原题链接:https://leetcode-cn.com/problems/climbing-stairs/ 1.动态规划 dp[i]表示爬到第i个阶梯的方法数 状态转移 dp[i]+=dp[i-k] ...

  8. LeetCode(70题)--爬楼梯[JAVA]

    文章目录 一.题目描述与分析 二.解题代码及算法描述 一.题目描述与分析 不难看出,这是一道常见的递归算法题型. f(n)={ 1  n=1: 2 n=2; f(n-1)+f(n-2) n>2; ...

  9. 【数据结构与算法】力扣实战之移动零、盛最多的水、爬楼梯

    练题法则 5-10分钟读题与思考 不要纠结没有思路就直接看题解: 不要死磕觉得自己很失败,怎么我们就想不出来: 基本上这些算法题,让我们自己想出来是不可能的: 拿跳表的来说,如果我们能从0-1把它想出 ...

最新文章

  1. 最温暖的大学,最火热的比赛
  2. 避免HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常
  3. 【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)
  4. java 处理异常的场景_Java高级----异常处理机制、自定义异常----含思维导图
  5. SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件
  6. 使用ant触发Tomcat的reload操作
  7. 如何将10进制转成16进制,又如何将16进制数转成10进制,C#和VB代码?
  8. js中如何判断一个DOM对象是否存在?
  9. Google 搜索点击量不到 50%?
  10. fzu2202 犯罪嫌疑人
  11. shiro之入口:EnvironmentLoaderListener
  12. java 表格布局_Java怎样把表格放在绝对定位的面板上
  13. 电工最实用口诀 背会就是老电工
  14. c#样条曲线命令_C#基数样条曲线的模拟实现(对应Graphics的DrawCurve)
  15. Unity播放服务器端视频 发布到Android移动端
  16. 高阶的Parser:可变运算优先级
  17. 香港各个大学计算机类专业
  18. 将北京时间转换为世界协调时
  19. 访客统计php代码转换图片,PHP实现简单网站访客统计的方法实例
  20. 前端下载本地excel模板

热门文章

  1. 开发错误记录2 .MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
  2. c语言中的errno
  3. Ubuntu 10不能通过改source.list装JDK 1.6
  4. pku 1639 Picnic Planning 最小度限制生成树
  5. Python交互界面方向键、退格键乱码
  6. Lenovo E47A Ubuntu闪屏解决办法
  7. 历史上那些差点被扼杀的数学天才,考试、偏见都是凶手
  8. PostgreSQL——不仅仅是监控
  9. Linux Mount命令浅解
  10. 对waitpid 的学习