package code;
//题目描述:矩形覆盖
//我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。
//请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
//依旧是斐波那契数列
//2*n的大矩形,和n个2*1的小矩形
//其中target*2为大矩阵的大小
//有以下几种情形:
//1、target <= 0 大矩形为<= 2*0,直接return 0;
//2、target = 1大矩形为2*1,只有一种摆放方法,return1;
//3、target = 2 大矩形为2*2,有两种摆放方法,return2;
//4、target = n 分为两步考虑:
// (1)第一次摆放一块 2*1 的小矩阵,则摆放方法总共为f(target - 1)
//√ 口 口 口 口 口
//√ 口 口 口 口 口
//
// (2)第一次摆放一块1*2的小矩阵,则摆放方法总共为f(target-2)
//因为,摆放了一块1*2的小矩阵(用√√表示),对应下方的1*2(用××表示)摆放方法就确定了,所以为f(targte-2)
//√ √ 口 口 口 口 口
//× × 口 口 口 口 口
public class Offer10
{
public static void main(String[] args)
{
Offer10 offer = new Offer10();
for(int i = 0; i < 10; i++)
System.out.println(offer.RectCover(i));
}
public int RectCover(int target)
{
if(target == 0)
return 0;
else if (target == 1)
return 1;
else if(target == 2)
return 2;
else
return (RectCover(target-1) + RectCover(target-2));
}
}
相关推荐
学习笔记之——Event Camera(事件相机)调研
概述 Event Camera是一种bio-inspired sensor,对应的领域为bio-inspired vision。对于传统的相机,从某种程度上,是捕获一个静态/静止的空间,而Event Camera的目的是:敏感地捕捉运动的物体。 对于传统RGB-camera,相机传回的信息是同步的,所谓同步,就是在某一时刻t,相机会进行曝光,把这一时刻所有的像素填在一个矩阵里回传,一张照片就诞生了。一张照片上所有的像素都对应着同一时刻。至于视频,不过是很多帧的图片,相邻图片间的时间间隔...
剑指Offer10:矩形覆盖
剑指Offe10:矩形覆盖 1.题目 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 2.思路 还是递归思想,换汤不换药 3.代码 # -*- coding:utf-8 -*- class Solution: def rectCover(self, number): if number <=...
抖音私信卡片私信名片的原理分析
简单说一下它的功能吧:抖音私信卡片,解决了客户封号严重、引流效率低的痛点,所以从去年到现在,依然是热销品。"抖音快手私信名片链接跳转"是2022年抖音快手引流最新技术,可以生成卡片链接,支持标题、描述、logo以及跳转落地页的完全自定义配置.支持微信公众号和微信号复制唤起微信客户端app添加,同时也支持任意链接落地页跳转提高粉丝引流转化率,关注转化率,引流转化率,安全绿色私信卡片功能1、跳转微信用户点击卡片,自动跳转微信界面,显示好友和群聊二维码2、跳转链接用户点击卡片,自动跳转到指定链接,支持任意链接。3
剑指offer JZ10:矩形覆盖
剑指offer JZ10:矩形覆盖 问题 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2n的大矩形,总共有多少种方法? 比如n=3时,23的矩形块有3种覆盖方法: 思路 这道题上来看上来很唬人,无从下手,但是从简单的例子中就能很快发现规律:对于n,其可以是n-1的情况下加上一个竖的21矩阵得到,也可以是n-2的情况下加上两个横的12得到**(注意这里最重要的是,这时候两个竖的2*1的放置方式是不行的,因为其已经在n-1的情况中考虑过了)** 代码及解释
Mac上SSH连接神器SecureCRT:从安装到高效使用的完整指南
本文详细介绍了Mac上专业SSH连接工具SecureCRT的安装与高效使用技巧。从核心优势、会话管理到快捷键方案,全面解析如何提升远程开发与服务器管理效率。特别适合需要处理多服务器环境和复杂终端控制的Mac用户,SecureCRT的企业级加密和跨平台同步功能使其成为SSH连接的神器。
米哈游 AI产品经理面试题精选:10道高频考题+答案解析(附PDF)
米哈游是全球知名游戏开发商,以《原神》《崩坏》系列著称,专注二次元文化与AI技术创新。本文整理了10道AI产品经理面试题,涵盖Transformer架构、智能NPC设计、机器学习应用、AIGC产品规划等核心领域。题目既考察技术理解(如RAG原理、多模态模型),又关注产品落地(游戏平衡性优化、伦理安全),同时强调跨团队协作能力。参考答案均结合米哈游业务场景,体现技术驱动与玩家体验并重的产品思维,展现AI在游戏行业的创新应用前景。
【剑指Offer】10、 矩形覆盖
题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题解一:递归 1 //类似于斐波那契,递归 2 public static int RectCover(int target) { 3 if(target<=0){ 4 return 0; ...
(保姆式教程:从下数据到画图)python如何利用EOF分析SSTA海温异常现象并画图
保姆式教程,教你如何利用python分析1979-2004年的太平洋地区的海温异常SSTA,并且绘制出空间模态和时间序列的图片。
剑指offer第10题:矩形覆盖
剑指offer第10题:矩形覆盖题目描述矩形覆盖分析递归源码 题目描述 矩形覆盖 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析 递归 覆盖2*n矩形方法有两种情况: 1.先覆盖2*(n-1)的大矩形,然后用2*1的小矩形竖着覆盖最后一部分。 2.先覆盖2*(n-2)的大矩形,然后用2*1的两块矩形横着覆盖最后...
基于自适应小波阈值算法的图像去噪
自适应小波阈值算法是一种基于小波变换的方法,它相对于传统的小波阈值去噪方法具有更好的性能和鲁棒性。该算法首先对图像进行小波变换,然后根据小波系数的大小确定一个自适应的阈值,将小波系数与阈值进行比较,大于阈值的系数被保留,小于阈值的系数被置零。在上述代码中,首先选取了小波函数sym4进行小波分解,然后根据标准差计算出阈值,使用wthresh函数进行阈值处理,最后进行反变换得到处理后的图像。该GUI界面与前面的自适应小波阈值算法代码结合,实现了图像的去噪,并提供了可视化的效果。
Pytorch入门实战(2)-使用BP神经网络实现MNIST手写数字识别
上一篇:Pytorch入门实战(1) - 实现线性回归 涉及知识点 Pytorch nn.Module的基本使用 Pytorch nn.Linear的基本用法 PytorchVision Transforms的基本使用 Pytorch中DataLoader的基本用法 Pytorch详解NLLLoss和CrossEntropyLoss 如何确定神经网络的层数和隐藏层神经元数量 本文内容 本文将会使用BP神经网络(就是最普通的神经网络)实现一个MNIST手写数据集的实现。话不多说,直接开始。 首先先导入需要的包
《剑指offer》—— 10. 矩形覆盖
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? public class Solution { public int RectCover(int target) { } } 思路: 1.n = 1 时,大矩形 2*1 ,有 1 种方法。 2.n = 2 时,大矩形 2...
【100%通过率】2024华为OD机试真题E卷 C++语言 实现【流浪地球】
流浪地球计划在赤道上均匀部署了N个转向发动机,按位置顺序编号为0~N-1。 1) 初始状态下所有的发动机都是未启动状态; 2) 发动机起动的方式分为“手动启动”和“关联启动”两种方式; 3) 如果在时刻1一个发动机被启动,下一个时刻2与之相邻的两个发动机就会被“关联启动”; 4) 如果准备启动某个发动机时,它已经被启动了,则什么都不用做; 5) 发动机0与发动机N-1是相邻; 地球联合政府准备挑选某些发动机在某些时刻进行“手动启动”,当然最终所有的发动机都会被启动。 哪些发动机最晚被启动呢?
【剑指Offer】10、矩形覆盖
一、题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 二、代码 思路:归纳总结,最后发现是递归。 (1)当n=1, 2*1 ==>1种; (2)当n=2, 2*2 ==>2种; (3)当n=3, 2*3 ==>3种; (4)当n=4, 2*4 ==>5种; …… …… …… 5)当n...
NTscan扫描工具
ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
《剑指 Offer》——10、矩形覆盖
1. 本题知识点 递归 2. 题目描述 我们可以用 2x1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2x1 的小矩形无重叠地覆盖一个 2xn 的大矩形,总共有多少种方法? 3. 解题思路 当 n = 1 时,只有一种覆盖方法 当 n = 2 时,有两种覆盖方法 当 n = 3 时,有三种覆盖方法 当 n = N(N > 2) 时,只需要考虑第一块如何覆盖即...
怀旧版电脑GBC模拟器
再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。
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>
【剑指offer】10-矩形覆盖
本文系《剑指offer》的刷题记录,通过牛客网在线平台测试通过。 在线测试平台:牛客网 编程资料获取:CodeLab 1-Description 我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形,总共有多少种方法? 2-Solution 1-问题分析 这仍旧是一个斐波那契数列的问题,下面具体分析: 假设第一次我们用2×1的小矩形...
【剑指offer】10——矩形覆盖
题目描述 我们可以用 2∗12*12∗1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 nnn 个 2∗12*12∗1 的小矩形无重叠地覆盖一个 2∗n2*n2∗n 的大矩形,总共有多少种方法? 一、解题思路 以 8∗28*28∗2 为例: 我们可以看出,这是个斐波那锲数列,f(1)=1,f(2)=2f(1) = 1,f(2) = 2f(1)=1,f(2)=2 参考:【剑指offer】...
10、剑指offer - 矩形覆盖
考点: 递归和循环 题目描述: 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 解题: 痛定思痛,还是不能够贪小便宜。用归纳法归纳如下, (1)当 n < 1时,显然不需要用21块覆盖,按照题目提示应该返回 0。 (2)当 n = 1时,只存在一种情况。 (3)当 ...
《剑指offer》—10、矩形覆盖
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: 1)、当 n = 1时,矩阵大小n = 2时,为2*1时,只有1种覆盖方法,即f(1) = 1; 2)、当 n = 2时,矩阵大小为2*2时,有2种覆盖方法,即f(2) = 2; 3)、当 n
【剑指Offer】10.2 矩形覆盖
题目描述 我们可以用 2*1 的小矩形横着或者竖着去覆盖更大的矩形。请问用 n 个 2*1 的小矩形无重叠地覆盖一个 2*n 的大矩形,总共有多少种方法? 解题思路 当 n 为 1 时,只有一种覆盖方法 当 n 为 2 时,有两种覆盖方法 要覆盖 2*n 的大矩形,可以先覆盖 2*1 的矩形,再覆盖 2*(n-1) 的矩形;或者先覆盖 2*2 的矩形,再覆盖 2*(n-2) 的矩形。而覆盖 2*(n-1) 和 2*(n-2) 的矩形可以看成子问题。该问题的递推公式如下: public class Solu
剑指Offer10——矩形覆盖
/* * 矩形覆盖 * 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。 * 请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? * * 设想这么一个矩形,n=3的情况等于: 1.n=2加上一列 2.n=1加上两行 则f(n)=f(n-2)+f(n-1) * */ public class Offer10 { public int RectCov...
剑指Offer [Python] | 10 矩形覆盖
「剑指Offer [Python] 」系列 —— 第10题「矩形覆盖」。
【剑指offer】10.矩形覆盖
【剑指offer】10.矩形覆盖题解及其C++代码
剑指Offer(10)--矩形覆盖
文章目录题目描述思路以及解法 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 思路以及解法 先说思路,基本是递归,首先如果n为1,那么肯定只有一种,f(1)=1,如果n=2,f(2)=2 但是n>2的时候呢?那么我们的思路就可以分为第一次切分长度为1,和切分长度为2来计算,也就是剩下的是f(n-1)和f(n-2),两者加起来即可。 f(n)={0,n<=01,
剑指offer系列10之矩形覆盖
要求 时间限制:1秒 空间限制:32768K 热度指数:241970 题目描述 我们可以用2∗12*12∗1的小矩形横着或者竖着去覆盖更大的矩形。请问用nnn个2∗12*12∗1的小矩形无重叠地覆盖一个2∗n2*n2∗n的大矩形,总共有多少种方法? 思路 从后往前倒推,对于2∗n,(n&gt;2)2*n,(n&gt;2)2∗n,(n>2)来说,可以有如下几种方法得到: ...
[剑指offer]10、矩形覆盖
题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析: n为1时,有1种方法;n为2时,有2种方法;n>2时,当第一块矩形竖着放时,则有f(n-1)种方法,当第一块矩形横着放时,则下面一块的位置也已经确定,则共有f(n-2)种方法,因此f(n)=f(n-1)+f(n-2),也是斐波那契数列。 ...
3万+



被折叠的 条评论
为什么被折叠?



