首页 > 其他分享 >【剑指Offer】10、矩形覆盖

【剑指Offer】10、矩形覆盖

时间:2023-08-20 23:55:42浏览次数:31  
标签:10 覆盖 Offer int 放时 矩形

【剑指Offer】10、矩形覆盖

题目描述:

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

解题思路:

我们可以以2 X 8的矩形为例。

先把2X8的覆盖方法记为f(8),用1X2的小矩形去覆盖时,有两种选择:横着放或者竖着放。当竖着放时,右边还剩下2X7的区域。很明显这种情况下覆盖方法为f(7)。当横着放时,1X2的矩形放在左上角,其下方区域只能也横着放一个矩形,此时右边区域值剩下2X6的区域,这种情况下覆盖方法为f(6)。所以可以得到:f(8)=f(7)+f(6),不难看出这仍然是斐波那契数列。

特殊情况:f(1)=1,f(2)=2

编程实现(Java):

   public int RectCover(int target) {
        //n=1(1),n=2(2),横(n-1),竖(n-2)
        if(target<=2)
            return target;
        int first=1,second=2,res=0;
        for(int i=3;i<=target;i++){
            res=first+second;
            first=second;
            second=res;
        }
        return res;
    }

标签:10,覆盖,Offer,int,放时,矩形
From: https://www.cnblogs.com/bujidao1128/p/17644902.html

相关文章

  • 【剑指Offer】9、变态跳台阶
    【剑指Offer】9、变态跳台阶题目描述:一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。解题思路:当只有一级台阶时,f(1)=1;当有两级台阶时,f(2)=f(2-1)+f(2-2);一般情况下,当有n级台阶时,f(n)=f(n-1)+f(n-2)+···+f(n-n)......
  • ORA-27102:内存不足
    错误信息【汉】ORA-27102:内存不足【英】ORA-27102:outofmemory环境CentOS7操作系统Oracle11G例使用dbca图形界面创建实例时报错。原因在创建时,Oracle检测到当前操作系统的内存不够,无法创建指定的SGA和PGA的实例。解决办法我们可以将解决分为两步,首先是排查内存的使用情况,再就......
  • CQBZ Round 10
    CQBZround10心态考爆炸了,emmmm。最大挂点:T5原因:主要:对二项式反演本质理解有问题。次要:不会及时止损。jump不妨设\(h_0=0\),且固定这个位置,则原问题化为找到一种排列,求出:\[\max\left\lbrace\sum_{i=1}^n(h_i-h_{i-1})^2\right\rbrace\]将其拆开,化简,可以得到:\[\begin{al......
  • Python教程(10)——Python变量类型元组tuple的详细用法
    在Python中,元组(Tuple)是一种有序且不可变的数据类型。元组可以包含任意数量的元素,用逗号分隔,并用圆括号括起来。与列表(List)不同,元组的元素不能修改。元组与列表一样,可以通过索引访问其中的元素。my_tuple=("apple","banana","cherry")print(my_tuple[0])#输出:apple元组的......
  • Python教程(10)——Python变量类型元组tuple的详细用法
    在Python中,元组(Tuple)是一种有序且不可变的数据类型。元组可以包含任意数量的元素,用逗号分隔,并用圆括号括起来。与列表(List)不同,元组的元素不能修改。元组与列表一样,可以通过索引访问其中的元素。my_tuple=("apple","banana","cherry")print(my_tuple[0])#输出:apple元组......
  • win10开启WSL安装ubuntu
    从win10开始提供了WSL来使用linux系统,这里利用wsl来安装ubuntu,1、首先要确保windows中的几个相关的选项是打开的 确定后重启系统 然后以管理员身份打开powershell,输入命令Enable-WindowsOptionalFeature-Online-FeatureNameMicrosoft-Windows-Subsystem-Linux2、设置......
  • 国外服务器怎么有效降低延迟103.36.167
    国外服务器怎么有效降低延迟?在全球化网络环境下,越来越多的企业和个人选择使用国外服务器来托管网站、应用程序或数据。然而,由于地理位置、网络连接等因素,使用国外服务器时可能会遇到延迟较高的问题。高延迟不仅影响用户体验,还可能对业务性能造成负面影响。国外服务器怎么有效降低......
  • 【web_逆向10】非对称加密之RSA
    非对称加密非对称加密.加密和解密的秘钥不是同一个秘钥.这里需要两把钥匙.一个公钥,一个私钥.公钥发送给客户端.发送端用公钥对数据进行加密.再发送给接收端,接收端使用私钥来对数据解密.由于私钥只存放在接受端这边.所以即使数据被截获了.也是无法进行解密的.常见......
  • 西农OJ P1073 阶乘TvT
    1073:阶乘题目描述给一个整数,请输出该数字阶乘的后缀0的个数,例如:数字7,它的阶乘为5040,后面有一个0,则输出1;还有数字10,它的阶乘为3628800,后面有两个0,则输出2。输入第一行一个数据N,小于100,表示一共要输入n个数字,以后n行输入一个数字。输出对应于每一个输入,输出一个满足题目要......
  • 西农OJ P1067 Humble Number
    1067:HumbleNumber题目描述如果一个数只有素数因子2,3,5,7,那么这个数被称为“HumbleNumber”。前20个“HumbleNumber”是:1,2,3,4,5,6,7,8,9,10,12,14,15,16,18,20,21,24,25,27。经验证,2000000000以内的“HumbleNumber”共有5842个。你的任务是编写一个程序,根据要求输出序列中的某一个数。如22,......