剑指Offer 矩形覆盖 (Java)

(Java 剑指 offer)矩形覆盖 文章目录一、题目二、题解 一、题目 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 二、题解 脑子不好使,正解还是应该用递归,但是感觉太难理解了,所以取巧还是找规律: n=1 共 1 n=2 共 2 n=3 共 3 n=4 共 5 n=5 共 8 画图还是很好画的,... 阅读详情

矩形覆盖

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

思路:
在这里插入图片描述

观察上面的矩形,如果使用2x1的矩形来覆盖2x8的矩形的话,设有f(n)中覆盖放法。首先,第一个2x1的矩形有两种放法,第一种,竖着放,剩下的部分有f(7)种,第二种横着放,剩下的部分有f(6)种。则一共有f(8) = f(7) + f(6)。很明显这又是著名的Fibonacci数列。
实现代码:

递归

public class Solution {
    public int RectCover(int target) {
        if(0 == target){
            return 0;
        }else if(1 == target){
            return 1;
        }else if(2 == target){
            return 2;
        }else {
            return RectCover(target - 1)+ RectCover(target - 2);
        }
    }
}

循环


方法运行时间所占内存
递归700ms9288k
循环14ms9344k
如何用Python爬取中国土地市场网2000-2023年土地出让数据(含经纬度) 本文详细介绍了如何使用Python爬取中国土地市场网2000-2023年的土地出让数据(含经纬度),提供了一套高效的技术方案。通过应对动态加载的反爬机制、优化地理编码数据存储和设计异常处理流程,帮助开发者建立自动化数据采集管道。方案已在商业地产分析项目中验证,可稳定采集超过50万条土地交易记录。 阅读详情

相关推荐

AD23导出Gerber文件保姆级教程:从PCB到嘉立创下单,一步不落(附常见问题排查)

本文提供AD23导出Gerber文件的详细教程,涵盖从PCB设计检查到嘉立创下单的全流程,特别针对两层板设计场景,帮助新手工程师避免常见错误。内容包括Gerber文件生成步骤、钻孔文件设置、文件检查工具推荐以及嘉立创下单实操指南,确保PCB打样顺利。

weixin_30924239的博客 440

10 图解剑指Offer 矩形覆盖 Java题解

10 图解剑指Offer 矩形覆盖 Java题解10 图解剑指Offer 矩形覆盖 Java题解题目链接题目描述题解:图解:代码:复杂度 10 图解剑指Offer 矩形覆盖 Java题解 题目链接 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 题解: 具体看图解 思路: 斐波那契额数列问题,此题前n项和公式 f(n) = f(n - 1) + f(n -2) (n>

Vaxue的博客 307

【邻接表存图模板】vector邻接表、数组邻接表、链式前向星

一、目录 一、目录 二、前言 三、邻接表“详解” (一)边的信息 (二)几种邻接表的实现方法“详解” 1.数组邻接表 代码 2.vector邻接表 代码 vector邻接表还有一种魔性写法: 3.链式前向星 代码 四、总结 二、前言 本来之前自己太弱了,一直只会用邻接矩阵,后来发现邻接表才是主流... 参考&特别鸣谢: https://www.cnblog...

十里寒塘路♣烟花一半醒 3113

矩形覆盖【剑指offer——JAVA实现】

【考点:递归和循环】矩形覆盖题目描述我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路本题与《【剑指offer——JAVA实现】跳台阶》思路是一致的。依旧是斐波那契数列 2*n的大矩形,和n个2*1的小矩形 其中target*2为大矩阵的大小 有以下几种情形: target <= 0 大矩形为&...

罗先森何其有幸的博客 524

PCAN-Explorer5使用教程

在PCAN中新建工程,导入DBC文件(右键apply),导入采集的数据选择对应的CAN通道点击红框中的标记可选择想要查看的信号在plot界面跳出属性,可调整信号显示的样式和最大最小值调出cursor,选择需要观测的变量,选中右键style——Period 可显示间隔时间增加cursor,可观测多个变量。

weixin_43997043的博客 6913

1.47寸ST7789V3彩屏硬件设计与驱动调试指南

TFT LCD是一种基于薄膜晶体管阵列控制像素明暗的主动式显示技术,其核心依赖于专用驱动IC(如ST7789V3)完成时序生成、GRAM管理与伽马校正。该类小尺寸彩色显示屏广泛应用于嵌入式HMI、IoT终端与可穿戴设备,具备高PPI、低功耗和SPI接口易集成等工程优势。理解RGB565数据格式、SPI Mode 0通信时序及关键寄存器(如0x36方向控制、0x3A像素格式、0x2A/0x2B地址窗口)是实现稳定显示的基础;而正确处理电源设计(严禁5V直供)、复位时序与背光PWM调光,则直接决定系统可靠性与能

weixin_30995917的博客 166

JAVA实现矩形覆盖问题(《剑指offer》)

题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 最近在刷《剑指offer》里的编程题,但是网上关于《剑指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++进行讲解,这里自己用java写了一些题目的解答代码(当然也有部分是借鉴了网上别人的解答的,出处未注明敬请之处请指出,侵删

遥同学的博客 2336

Visual Studio 6.0 镜像下载全指南:从企业版到中文版

本文提供Visual Studio 6.0企业版和中文版的镜像下载全指南,包括详细版本解析、已验证的下载链接及校验信息。针对现代系统的安装技巧和兼容性处理方案,帮助开发者高效获取并运行这一经典开发工具,特别适合维护遗留系统的专业人员。

weixin_33712987的博客 1037

剑指offer 10:矩形覆盖-- Java实现

剑指offer每日一题算法题(java解法) 方便日后复习,从今天开始。 算法之行始于足下 [编程题]矩形覆盖-- Java实现 ------------------------------------------------------------------------------------------------------ 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请...

jiohfgj的博客 171

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

【AI】获取各类AI大模型api-key的快速教程(OpenAI、Gemini、Claude、DeepSeek)

funfan的博客 3005

GEE:基于MODIS数据计算NDVI时间序列,并使用Savatsky-Golay(SG)滤波器对其进行平滑处理

优快云@_养乐多_本文将介绍如何在 Google Earth Engine (GEE) 平台中,使用 MODIS 数据计算 NDVI 时间序列,并对该数据集应用 Savitzky-Golay 滤波器,得到了一个新的平滑后的数据集。Savitzky-Golay 滤波器可以有效地去除信号中的噪声,并平滑信号的变化。该方法可以扩展到基于 MODIS 数据计算的任何指数或者波段。

养乐多的博客 1426

[剑指Offer]矩形覆盖(Java)

剑指Offer题目 矩形覆盖 -- 剑指Offer 10 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路 数学推导: * n = 1 时 , f(1) = 1 * n = 2 时 , f(2) = 2 * n = 3 时 , f(1) = 3 * n = 4 时 , f(1) =...

聚沙成塔 509

在 SAP BTP ABAP Environment 里把 ATC 跑成流水线:定时检查 + 告警邮件,一次打通

摘要 本文介绍了如何在SAP BTP ABAP环境中实现ATC检查的自动化流程。通过将ATC与质量体系结合,构建从检查到通知的完整闭环:使用Custom Code Analysis Project定义检查范围,通过Application Jobs实现定时调度,利用标准CDS View读取结果,最后开发通知作业发送告警邮件。文章重点阐述了云环境下不同于On-Premise的实现思路,包括Test Variant设计、作业编排模板应用等关键环节,并提供了可落地的代码示例。这种自动化方案能有效解决人工检查的滞后性

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 167

剑指offer 矩形覆盖 Java

题目  我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 题解  典型的跳台阶问题 public class Solution { public int RectCover(int target) { int[] a = new int[target+10]; a[1] = 1; a[2] = 2; a[3] =

一条咸鱼 320

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

剑指 offer之矩形覆盖_Java

题目;矩形覆盖 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: 依旧是斐波那契数列 2n的大矩形,和n个21的小矩形 其中target2为大矩阵的大小 有以下几种情形: 1⃣️target <= 0 大矩形为<= 20,直接return 1; 2⃣️target = 1大矩形为21,只有...

Mary~fighting的博客 242

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

矩形覆盖java 剑指offer

矩形覆盖 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: public class Solution { public int RectCover(int target) { if(target==1) return ...

kelexing4的博客 192

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【剑指Offer题解:java】矩形覆盖

文章目录题目分析代码 题目 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 看完题目的我一脸懵,对题目进行分析 分析 n = 1时,显然只有一种情况 n =2时显然2种情况 n=3时3种情况 n = 4时5种情况 从n=3到n=4,怎么来的呢? 这里有2种情况: 直接在n=3的情况下,再后面中添加一个竖着的。这个很显然成立,有3种情况 然后横着的显然能添加到n-2的情况

小游子YKY的博客 843

剑指offer打卡4-矩形覆盖(java版)

剑指offer打卡3-变态蛙跳台阶(java版)1. 考察知识点2. 题目3. 思路4. 代码实现 1. 考察知识点 递归 2. 题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 3. 思路 开始找规律。。。 跳1阶——1种方式 跳2阶——2种方式 跳3阶——4种方式 跳4阶——8种方式 跳5阶——16种方式 ...

qq_35498370的博客 274

【剑指Offer-Java】矩形覆盖

矩形覆盖题目描述思路实现 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路 实质是斐波那契问题,还是用动态规划吧 dp[i]=dp[i-1]+dp[i-2] dp[i-1]指长为i时若最后一个小矩形竖着放的总数,dp[i-2]是横着放时的情况 实现 public int RectCover(int targ...

IT Crowd的博客 175

剑指Offer-矩形覆盖Java

10、矩形覆盖 题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 思路: 找规律,递归。 target = n分为两步考虑: 1、第一次摆放一块2*1的小矩阵,则摆放方法总共为f(target - 1) 2、第一次摆放一块1*2的小矩阵,则摆放方法总共为f(ta...

llluluyi的博客 149

剑指offer 第十题 矩形覆盖 java

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路: n为奇数的话,那么多一个竖着的小矩形 n为偶数的话,这时候就是分多少竖着,多少横着,横着就是2个横着,回到了剑指offer第八题跳2还是1的问题了 代码没差别,一样 public class Solution ...

blood_ing_的博客 171

剑指offer覆盖矩形java

从后向前,最后一个矩形 2*2 的,只有两种情况: 第一种是最后是由一个2*(n-1)的矩形加上一个竖着的2*1的矩形 另一种是由一个 2*(n-2) 的矩形,加上两个横着的2*1的矩形 因此,第2n个矩形的覆盖方法数等于第 2(n-1) 加上第2(n-2)的方法* public class Solution { public int RectCover(int target) { ...

weixin_44019182的博客 864

【剑指offer中等部分3】矩形覆盖(java)

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析 经过前面的习题,会有种想法,就是问题有多少种方法,基本很可能都和斐波那契有关,所以这种可以先推一推前4项,看看效果,是不是具有斐波那契的规律,如下图,发现真的是,所以这看起来很可怕的题,分析一下就是纸老虎。 相似的题,如 跳台阶(青蛙) 递归 public class Solution { public int RectCover(int target)

小样yx的博客 239

Java(剑指offer)矩形覆盖

题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析:和跳台阶是一样的,见跳台阶分析:https://blog.youkuaiyun.com/wuhenglan/article/details/98505658 public class Solution { public int RectCover(in...

wuhenglan的博客 180

剑指offer 矩形覆盖(java)

矩形覆盖 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 解题思路: 参考struggle201907102230352 public class Solution { public int RectCover(int target) { //f(n) = f(n-1)+ f(n-2) if(target == 0) return 0;

yyxyuxueYang的博客 258

剑指Offer-Java-矩形覆盖

题目 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 代码 可以将问题理解成 当1*2的格子的时候只有一种可能 当2*2的格子时候有两种可能 当3*2的时候取决于第一个怎么放,当第一次摆放一块 2*1 的小矩阵,则摆放方法总共为f(target - 1)当第一次摆放一块1*2的小矩阵,则摆放方法总共为...

咸鱼塘 281
上一篇: 剑指Offer-09.变态跳台阶(Java)
下一篇: 剑指Offer-二进制中1的个数()
happytaohaha
博客等级 码龄9年 37粉丝 187原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值