跳台阶
  • 时间限制:1秒空间限制:32768K

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
 
分析同样为斐波那契数列边形这样的题肯定有公式
设n级台阶,总跳法 jumps
n      jumps
1       1
2       2
3       3
4       5
5       8
猜测 fbonicc(n) = fbonicc(n-1) + fbonicc(n-2)
3        4          5
111      1111        1111(1)
21        211          211(1)
12        121         121(1)
        112         112(1)
        22          22(1)
                   111(2)
                   21(2)
                   12(2)
现在我们可以这样理解当   f(n) 比 f(n-1)少一个台阶
这一个台阶我们可以当一步跳完,也可以与前面的一步结合成一次跳两阶,So
前一种情况我们可以直接把这一步添到f(n-1)所有跳数后面,后一种情况很显然我们要向f(n - 1)借一步,也就是f(n-2)
所以得f(n) = f(n-1) + f(n-2)
 
c++代码实现
class Solution {
public:
int jumpFloor(int number) {
long long fiboncciA = 1;
long long fiboncciB = 2;
if (number == 1){
return fiboncciA;
}
if (number == 2) {
return fiboncciB;
} int i;
for (i = 3; i <= number; i++){
int tmp = fiboncciB;
fiboncciB = fiboncciA + fiboncciB;
fiboncciA = tmp;
}
return fiboncciB;
}
};

下一题

  • 时间限制:1秒空间限制:32768K
  • 题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
!!猛一看这道题有点没看懂
 
先来仔细分析一下
1:所有小矩形都竖着覆盖
2:当矩形横着覆盖时都是成对出现的
看到这里有感觉很熟悉,这不就是跳台阶问题吗?答案:是的
我们可以把题目改一下:有n个小矩形,去覆盖大矩形你可以一次用一个,也可以一次用两个,总共有多少种覆盖方法。
现在可以看懂了吧!
 
c++代码实现
代码同上
 
 

(原)剑指offer跳台阶和矩形覆盖的更多相关文章

  1. 剑指Offer - 九度1390 - 矩形覆盖

    剑指Offer - 九度1390 - 矩形覆盖2014-02-05 23:27 题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形 ...

  2. 剑指Offer 跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法.   解题思路: f(n)=f(n-1)+f(n-2); f(1)=1,f(2)=2;   AC代码 ...

  3. 剑指Offer——跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 思路分析 这个问题可以先从简单开始考虑,台阶只有1阶,只有1种跳法,台阶有2阶,有2种跳法:一种两 ...

  4. 用js刷剑指offer(跳台阶)

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 牛客网链接 思路 这一题和斐波那契数列思路完全一样. 假如青蛙从第n个 ...

  5. 剑指offer【11】- 矩形覆盖

    题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 在分析前不知道是什么序列,所以先看了n=1,n=2,n=3,n= ...

  6. 剑指offer(10)矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题目分析 当然也可以逆向思维 应为可以横着放或竖着放,多以f ...

  7. 【剑指Offer】10、矩形覆盖

      题目描述:   我们可以用2 X 1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2 X 1的小矩形无重叠地覆盖一个2 X n的大矩形,总共有多少种方法?   解题思路:   我们可以以2 X ...

  8. 【剑指offer】10:矩形覆盖

    题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: ①方法一 对于这种题没有思路怎么办?可以先从最 ...

  9. C#版 - 剑指offer 面试题9:斐波那契数列及其变形(跳台阶、矩形覆盖) 题解

    面试题9:斐波那契数列及其变形(跳台阶.矩形覆盖) 提交网址: http://www.nowcoder.com/practice/c6c7742f5ba7442aada113136ddea0c3?tp ...

随机推荐

  1. 栈 && 教授的测试

    卡特兰数:https://blog.csdn.net/wu_tongtong/article/details/78161211 https://www.luogu.org/problemnew/sho ...

  2. VMware每次联网都需要还原默认设置解决办法

    参考:https://zhidao.baidu.com/question/553464573715382812.html

  3. PlSqlDev中执行INSERT SQL语句包含&符号导致数据异常

    在PLSQL Developer中执行Insert语句时提示如下信息: 当时未注意,直接点击OK按钮继续. 导入数据后查看发现部分数据中的参数丢失了一部分,呈以下规律: . 而正常应为: . 经询问大 ...

  4. rsync服务的安装与配置

    rsync 服务的安装配置与客户端的同步操作   1. 使用xinetd服务运行rsync服务: 服务器端: 1.关闭selinux,设置iptables开放xinetd的873端口 2. yum - ...

  5. 关于ssh的介绍

    最近看到一篇关于介绍ssh讲得很清晰的文章,这里来记录一下加深一下印象: 基本原理: SSH(Secure Shell)是一套协议标准,可以用来实现两台机器之间的安全登录以及安全的数据传送,其保证数据 ...

  6. 使用nvmw解决windows下多版本node共存的问题

    不支持4.x的nodejs,用nodist吧 不支持4.x的nodejs,用nodist吧 不支持4.x的nodejs,用nodist吧 ===========不要再看的分割线============ ...

  7. java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

    在往数据库添加数据需要判断数据库中是否已有记录,判断的返回结果通常是List.在List为空的情况下,调用其方法需要格外注意,例如:调用get()则会报下标越界的异常. 当然还可以联想到其他情况,当判 ...

  8. P1216 [USACO1.5]数字三角形 Number Triangles

    题目描述 观察下面的数字金字塔. 写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大.每一步可以走到左下方的点也可以到达右下方的点. 7 3 8 8 1 0 2 7 4 4 4 5 ...

  9. 如何加快HTML页面加载速度

    1. 页面减肥 a. 页面的肥瘦是影响加载速度最重要的因素. b. 删除不必要的空格.注释. c. 将inline的script和css移到外部文件. d. 可以使用HTML Tidy来给HTML减肥 ...

  10. Android镜像文件ramdisk.img,system.img,userdata.img介绍

    Android 源码编译后,在out目录下生成的三个镜像文件:ramdisk.img,system.img,userdata.img以及它们对应的目录树root,system,data. ramdis ...