【手把手带你刷好题】—— 64.骨牌铺法

简介: 骨牌铺法

【前言】

今天是刷题打卡第64天!

一起加油吧,嘻嘻。


原题:骨牌铺法

题目描述:

有 2*n的一个长方形方格,用一个1*2的骨牌铺满方格。请编写一个程序,试对给出的任意一个n(n>0), 输出铺法总数。

思路:

其实这道题目很简单的,找到递推公式即可,跟上面的爬楼梯问题很相似,这里就详细分析一下:

  1. n = 1 时,只有一种铺法
  2. n = 2 时,如下图,有全部竖着铺和横着铺两种
  3. n = 3 时,骨牌可以全部竖着铺,也可以认为在方格中已经有一个竖铺的骨牌,则需要在方格中排列两个横排骨牌(无重复方法),若已经在方格中排列两个横排骨牌,则必须在方格中排列一个竖排骨牌。如下图,再无其他排列方法,因此铺法总数表示为三种。

通过上面的分析,不难看出规律:f(3) = f(1) + f(2)

所以可以的得到递推关系:f(n) = f(n - 1) + f(n - 2)

代码执行:

class Solution {
public:
    int brand(int n) {
        //找边界
        if(n == 1){
            return 1;
        }
        if(n == 2){
            return 2;
        }
        //定义一个大小为n+1的整型数组,并且初始化为0
        vector<int> dp(n+1, 0);
        dp[1] = 1;
        dp[2] = 2;
        for(int i = 3; i < n+1; i++)
        {
            dp[i] = dp[i - 1] + dp[i - 2];//找出递推关系
        }
        return dp[n];
    }
};


结语

今天是刷题打卡第64天!

加油吧少年。

相关文章
|
数据安全/隐私保护
新年快乐鞭炮祝福html网页源码
新年快乐鞭炮祝福html网页源码,动态点燃鞭炮动画祝福新年快乐,带新年背景音乐,无加密完整可用,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面。
375 0
新年快乐鞭炮祝福html网页源码
|
Python
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
该文章展示了使用Python的turtle库进行绘图的进阶案例,包括绘制彩色圆形和复杂图案的代码示例。
3931 7
turtle库的几个案例进阶,代码可直接运行(python经典编程案例)
|
安全 Java 数据安全/隐私保护
Java中的多线程编程:基础知识与实践
【5月更文挑战第24天】 在现代软件开发中,多线程编程是提升应用性能和响应速度的关键技术之一。Java 作为一种广泛使用的编程语言,其内置的多线程功能为开发者提供了强大的并发处理能力。本文将深入探讨 Java 多线程的基础概念、实现机制以及在实际开发中的应用。我们将从线程的创建和管理出发,逐步讲解同步机制、死锁问题以及如何利用高级并发工具有效地构建稳定、高效的多线程应用。通过理论结合实例的方式,旨在帮助读者掌握 Java 多线程编程的核心技能,并在实际项目中灵活运用。
cmd常用命令(端口占用)
cmd常用命令(端口占用)
|
算法 前端开发
1544. 整理字符串
1544. 整理字符串
107 0
hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】(贪心)
hdu 1052 Tian Ji -- The Horse Racing【田忌赛马】(贪心)
130 0
|
安全 物联网 新能源
智能网联时代汽车行业数据合规挑战
随着新能源汽车市场占比的不断提升,全球汽车产业的转型升级已成为时代趋势,“数字化、智能化、网联化”成为汽车产业主要方向。随着人工智能技术的快速发展,新能源汽车、无人驾驶技术、车联网技术的不断升级与应用,汽车已从传统的运输工具,变成了新的数据处理节点。除了汽车自身信息、车主信息、座舱内数据外,汽车所搭载的各类设备还会采集海量的车外个人信息与测绘信息等重要数据,这些重要数据可以与其他智能终端进行数据交互,使汽车从传统的信息孤岛转变成为数据网络的重要节点。
294 0
|
存储 Go
Go学习笔记-Go 浮点数设计原理
Go学习笔记-Go 浮点数设计原理
253 0
|
机器学习/深度学习 DataX C++
机器学习入门详解(一):理解监督学习中的最大似然估计
 这篇文章在统计学的背景下对机器学习学习建模过程进行了解密。将带你了解如何对数据的假设使我们能够创建有意义的优化问题。事实上,我们将推导出常用的标准,如分类中的交叉熵和回归中的均方误差。
288 0
机器学习入门详解(一):理解监督学习中的最大似然估计
|
数据采集 数据可视化 数据挖掘
数据导入与预处理-第8章-实战演练-数据分析师岗位分析(上)
数据导入与预处理-第8章-实战演练-数据分析师岗位分析 1.数据分析概述 1.1 本章内容 1.2 什么是数据分析
数据导入与预处理-第8章-实战演练-数据分析师岗位分析(上)