跳台阶,变态跳台阶,矩阵覆盖

Posted welan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跳台阶,变态跳台阶,矩阵覆盖相关的知识,希望对你有一定的参考价值。

一、跳台阶

1、问题描述

跳台阶:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

2、代码

class Solution:
    def jumpFloor(self, number):
        # write code here
        a = 1
        b = 1
        for i in range(number):
            a, b = b, a+b
        return a

二、变态跳台阶

1、问题描述

变态跳台阶
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

2、代码

class Solution:
    def jumpFloorII(self, number):
        # write code here
        a = 1
        if number==1:
            return 1
        while number>1:
            a = a*2
            number = number-1
        return a

三、矩阵覆盖

1、问题描述

矩形覆盖:
我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?

2、代码

class Solution:
    def rectCover(self, number):
        # write code here
        if number <=2:
            return number
        a = 1
        b = 2
        c = 0
        for i in range(number-2):
            c = a+b
            a = b
            b = c
        return c

以上是关于跳台阶,变态跳台阶,矩阵覆盖的主要内容,如果未能解决你的问题,请参考以下文章

变态跳台阶

青蛙跳台阶衍生之变态跳台阶(递归,思路分析及代码实现)

变态跳台阶

剑指Offer变态跳台阶

剑指offer:变态跳台阶

剑指Offer-Java-变态跳台阶