zoukankan      html  css  js  c++  java
  • 【剑指offer】10矩阵覆盖

    原创博文,转载请注明出处!

    0.简介

    # 本文是牛客网《剑指offer》刷题笔记,笔记索引链接

    1.题目

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

    2.思路

                                               剑指Offer(十):矩形覆盖

    # 2*1的矩阵覆盖2*8的矩阵的方法f(8):用第一个1*2矩阵覆盖2*8矩阵的最左边时有竖着或横着两种方法。

    当1*2矩阵竖着放时,2*8矩阵右边剩余2*7的区域,覆盖2*7区域的方法记为f(7);

    当1*2矩阵横着放时,2*8左上角放一个1*2的矩阵,则2*8左下角必须放一个1*2的矩阵,2*8右边剩余2*6的区域,覆盖2*6区域的方法记为f(6)。

    结论:用1*2的矩阵覆盖2*8的矩阵的方法归纳为f(8) = f(7)+f(6)

    3.code

    # 返回值:用1*2矩阵无重叠覆盖2*n的矩阵的方法数

    # 参   数:矩阵的长度n

      1 class Solution {
      2 public:
      3     int rectCover(int number) {
      4         if(number<=0)
      5             return 0;
      6         if(number<3)
      7             return number;
      8 
      9         int a=1;
     10         int b=2;
     11         int c=0;
     12         for(int i=3;i<=number;++i){
     13             c=a+b;
     14             a=b;
     15             b=c;
     16         }
     17         return c;
     18     }
     19 };

     

  • 相关阅读:
    函数指针
    动态内存
    char*和char[]的区别
    C语言基本数据类型大小
    html5新特性localStorage和sessionStorage
    Swoole实现h5版聊天室笔记
    php使用mysql之sql注入(功)
    Http协议工作特点和工作原理笔记
    原生js使用ajax
    php常用的几个预定义变量
  • 原文地址:https://www.cnblogs.com/wanglei5205/p/8526940.html
Copyright © 2011-2022 走看看