博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.矩形覆盖
阅读量:5281 次
发布时间:2019-06-14

本文共 977 字,大约阅读时间需要 3 分钟。

题目描述

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

题目解答

public class Solution {    public int RectCover(int target) {        if(target<=0){            return 0;        }        if(target==1 || target==2){            return target;        }        int res=2;        int pre=1;        int tmp=0;        for(int i=3;i<=target;i++){            tmp=res;            res=res+pre;            pre=tmp;        }        return res;    }}

 

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

动态规划

target <= 0 大矩形<= 2*0,return 0;
target = 1大矩形2*1,return 1;
target= 2 大矩形为2*2,return2;
  
target = n 分为两步考虑:
第一次摆放一块 2*1 的小矩阵,则摆放方法总共为f(target - 1)
第一次摆放一块1*2的小矩阵,则摆放方法总共为f(target-2)
因为1*2的小矩阵下面的块摆放方式确定了,只要看后面target-2列就可以了

 

转载于:https://www.cnblogs.com/chanaichao/p/10120511.html

你可能感兴趣的文章
javascript学习笔记 - 引用类型 单体内置对象
查看>>
LeetCode-Pascal's Triangle II-帕斯卡三角-DP
查看>>
boot空间不足
查看>>
第五周学习进度条
查看>>
提出的问题
查看>>
使用kdesvn提交文件出现Aborting commit:'.lcd1602.ko.cmd' remains in conflict错误提示
查看>>
解决Jenkins无法编译Egret5.0项目的问题
查看>>
declare 结构用来设定一段代码的执行指令
查看>>
Hadoop学习笔记三:分布式hadoop部署
查看>>
异步IO和同步IO的区别:
查看>>
C 预处理指令
查看>>
动态规划求最大连续字序列
查看>>
ADO.Net---复习基础篇1
查看>>
图解算法读书笔记
查看>>
ubuntu 通过ppa源安装mysql5.6
查看>>
调试学习笔记
查看>>
连载 11:如何把信号展开成复指数信号之 和?
查看>>
解开lambda最强作用的神秘面纱
查看>>
Java基础:Object类中的equals与hashCode方法
查看>>
C#拦截Http请求
查看>>