[剑指offer] 矩形覆盖

简介: 本文首发于我的个人博客:尾尾部落题目描述我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2 * 1的小矩形无重叠地覆盖一个2 * n的大矩形,总共有多少种方法?解题思路依旧是斐波那契数列f(1) = 1f(2) = ...

本文首发于我的个人博客:尾尾部落

题目描述

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

解题思路

依旧是斐波那契数列
f(1) = 1
f(2) = 2
当n=3时,它可以由n=2的情况再覆盖一块得到,也可以由 n=1的情况再覆盖 2 块得到,所以 f(3) = f(1) + f(2),依次往下推,可以得到
f(n) = 1, (n=1)
f(n) = 2, (n=2)
f(n) = f(n-1) + f(n-2), (n>2)
用递归的方法即可实现

参考代码

public class Solution {
    public int RectCover(int target) {
        if(target<=0){
            return 0;
        }
        else if(target == 1|| target ==2){
            return target;
        }
        else{
            return RectCover(target-1) + RectCover(target-2);
        }
    }
}
目录
相关文章
|
编解码 Android开发
GB28181平台如何接入无人机实现智能巡检?
大家都知道,无人机巡检系统,有效解决了传统巡查工作空间和时间局限问题,降低人力工作成本,有效替代人工巡检工作模式。智能巡检系统通过人工智能技术和机械智能技术完美结合,在工业等场景下,应用非常广泛。本文旨在讲如何实现无人机(如大疆无人机)数据到GB28181平台(如海康、大华、宇视等国标平台)。
660 0
|
Go C# C语言
【GoLang 笔记】遍历 map 时的 key 随机化问题及解决方法
【GoLang 笔记】遍历 map 时的 key 随机化问题及解决方法
|
存储 NoSQL Java
Java如何生成序列号/订单号
Java如何生成序列号/订单号
1660 0
|
8月前
|
人工智能 搜索推荐 数据挖掘
2025做SEO 要花多少钱?收费标准超清楚!
SEO起源于美国,2015年后在中国逐渐专业化。因Google技术成熟,外贸网站排名多被国外占据,新站需系统化投入才能超越。SEO费用无统一标准,受行业、预算、目标等多因素影响,月费通常500至1万美元。企业应视其为长期投资,合理规划预算,选择可靠服务商或工具入行。
|
自然语言处理 机器人 Python
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
ChatPaper是一个基于文本生成技术的智能研究论文工具,能够根据用户输入进行智能回复和互动。它支持快速下载、阅读论文,并通过分析论文的关键信息帮助用户判断是否需要深入了解。用户可以通过命令行或网页界面操作,进行论文搜索、下载、总结等。
566 1
ChatGPT使用学习:ChatPaper安装到测试详细教程(一文包会)
|
人工智能 自然语言处理 算法
自然语言处理
【11月更文挑战第18天】
848 4
|
机器学习/深度学习 人工智能 自动驾驶
深度学习之自适应控制器设计
人工智能基于深度学习的自适应控制器设计在自动化系统、机器人控制、工业制造、无人驾驶等领域中有着广泛应用。自适应控制器借助深度学习模型的强大特征提取和学习能力,能够在未知或动态变化的环境中对系统进行实时调节,从而提升系统的响应速度、稳定性和控制精度。
714 1
|
关系型数据库 MySQL Linux
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
这篇文章记录了在CentOS 7系统上安装并配置MySQL后,使用Navicat尝试进行远程连接但失败的问题。问题的主要原因是虚拟机的防火墙没有关闭。文章详细介绍了如何检查防火墙的状态,如何临时关闭它,以及如何禁止防火墙在系统启动时自动启动。当防火墙处于开启状态时,远程连接无法成功;关闭或禁用防火墙后,远程连接便能成功建立。
成功解决:2003 -Can‘t connect toMySQL server on ‘10.1.46.42(10060 “Unknown error“) 使用navicate连接虚拟机出错
|
编解码 JavaScript 前端开发
vue cli3 PC端适配
【8月更文挑战第12天】
314 3
|
安全 数据安全/隐私保护 Android开发
三款远程控制软件对比,5大挑选指标:安全、稳定、易用、兼容、功能
众所周知,随着科技的发展和时代的进步,远程控制软件在日常工作中的运用所处可见,社会对远程控制软件的需求也在日益增长,为用户提供了便捷的远程访问和控制计算机的能力,使其在现代化社会中扮演着重要的角色。因此,市面上也出现了很多相似功能的产品,但是他们各有不同的特点和功能。本文主要介绍的是ToDesk、向日葵、TeamViewer三款远程控制软件间的不同之处,我将从安全、稳定、易用、兼容、功能几个方面来进行对比,帮助大家选择适合自己需求的远程办公软件。
727 1
三款远程控制软件对比,5大挑选指标:安全、稳定、易用、兼容、功能