code第一部分数组:第十七题 爬楼梯问题
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第一部分数组:第十七题 爬楼梯问题相关推荐
- code第一部分数组:第二十二题 偶数次中查找单独出现一次的数
code第一部分数组:第二十二题 偶数次中查找单独出现一次的数 Given an array of integers, every element appears twice except for o ...
- code第一部分数组:从有序数组中移除重复的数据
code第一部分数组:从有序数组中移除重复的数据 第二题 从有序数组中移除重复的数据,但是可以保留2个重复的数. For example, Given sorted array A = [1,1,1, ...
- 【算法】1041- 图解 LeetCode第 70 题爬楼梯问题
最近开始努力研究算法,遇到这个很有意思的题目,因为从中复习到斐波那契数列,又通过某篇资料,查到中科院官网,看了很多科普文章.深挖下去能看到很多东西. 本着热爱分享的初衷,整理本文与大家分享,题目本身没 ...
- 《LeetCode力扣练习》第70题 爬楼梯 Java
<LeetCode力扣练习>第70题 爬楼梯 Java 一.资源 题目: 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶 ...
- python侯先生爬楼梯_经典算法题:爬楼梯 ,以斐波那契数列来解题代码案例
网上这题的解题思路主要有两种:动态规划 斐波那契数列 因为我们用斐波那契数列来解,所以我主要描述方法2. 斐波那契数列 又称 兔子数列, 指得是:1.1.2.3.5.8.13.21.--, 在数学上它 ...
- 面试经典算法题--爬楼梯 的六种解法
题目描述: 假设你正在爬楼梯,需要n步你才能到达顶部.但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 六种解法: /*** 爬楼梯问题其实质就是斐波那契数列!*/ public cla ...
- leetcode算法题--爬楼梯
原题链接:https://leetcode-cn.com/problems/climbing-stairs/ 1.动态规划 dp[i]表示爬到第i个阶梯的方法数 状态转移 dp[i]+=dp[i-k] ...
- LeetCode(70题)--爬楼梯[JAVA]
文章目录 一.题目描述与分析 二.解题代码及算法描述 一.题目描述与分析 不难看出,这是一道常见的递归算法题型. f(n)={ 1 n=1: 2 n=2; f(n-1)+f(n-2) n>2; ...
- 【数据结构与算法】力扣实战之移动零、盛最多的水、爬楼梯
练题法则 5-10分钟读题与思考 不要纠结没有思路就直接看题解: 不要死磕觉得自己很失败,怎么我们就想不出来: 基本上这些算法题,让我们自己想出来是不可能的: 拿跳表的来说,如果我们能从0-1把它想出 ...
最新文章
- 最温暖的大学,最火热的比赛
- 避免HttpClient的”javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated”异常
- 【WinCE】SD card技术了解并WINCE下SDHC驱动开发(updated)
- java 处理异常的场景_Java高级----异常处理机制、自定义异常----含思维导图
- SAP Spartacus table cell如何通过cxOutlet在运行时动态注入组件
- 使用ant触发Tomcat的reload操作
- 如何将10进制转成16进制,又如何将16进制数转成10进制,C#和VB代码?
- js中如何判断一个DOM对象是否存在?
- Google 搜索点击量不到 50%?
- fzu2202 犯罪嫌疑人
- shiro之入口:EnvironmentLoaderListener
- java 表格布局_Java怎样把表格放在绝对定位的面板上
- 电工最实用口诀 背会就是老电工
- c#样条曲线命令_C#基数样条曲线的模拟实现(对应Graphics的DrawCurve)
- Unity播放服务器端视频 发布到Android移动端
- 高阶的Parser:可变运算优先级
- 香港各个大学计算机类专业
- 将北京时间转换为世界协调时
- 访客统计php代码转换图片,PHP实现简单网站访客统计的方法实例
- 前端下载本地excel模板
热门文章
- 开发错误记录2 .MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
- c语言中的errno
- Ubuntu 10不能通过改source.list装JDK 1.6
- pku 1639 Picnic Planning 最小度限制生成树
- Python交互界面方向键、退格键乱码
- Lenovo E47A Ubuntu闪屏解决办法
- 历史上那些差点被扼杀的数学天才,考试、偏见都是凶手
- PostgreSQL——不仅仅是监控
- Linux Mount命令浅解
- 对waitpid 的学习