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

java版本:

public class Solution {

    public  static void main(String[] args){
long startTime=System.currentTimeMillis();
System.out.println("第23项的结果是:"+RectCover(23));
long endTime=System.currentTimeMillis();
System.out.println("程序执行的时间:"+(endTime-startTime)+"ms");
}
/*递归*/
/*public static int RectCover(int target){
if(target<3){
return target;
}else{
return RectCover(target-1)+RectCover(target-2);
}
}*/
/*非递归*/
public static int RectCover(int target){
if(target<2){
return target;
}else{
int a=1;
int b=2;
int c=0;
for(int i=3;i<=target;i++){
c=a+b;
a=b;
b=c; }
return c;
}
} }

js版本:

function rectCover(number)
{
if(number<3){
return number;
}else{
var a=1,b=2,c=0;
for(var i=3;i<=number;i++){
c=a+b;
a=b;
b=c;
}
return c;
}
}

总结这道题用的也是斐波那契数列,思想和前几道题一致,不明白的同学可以翻翻我之前做过的题。故在此就不做详述,还是建议大家不用递归,时间复杂度较高。

剑指offer 10矩形覆盖的更多相关文章

  1. 剑指Offer 10. 矩形覆盖 (递归)

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题目地址 https://www.nowcoder.com/ ...

  2. [剑指Offer] 10.矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? [思路]可归纳得出结论: f(n) = f(n-1) + f ...

  3. 剑指Offer:矩形覆盖【N1】

    剑指Offer:矩形覆盖[N1] 题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 题目思考 我们先把2*8的 ...

  4. 剑指OFFER之矩形覆盖(九度OJ1390)

    题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入 ...

  5. 【剑指offer】矩形覆盖

    一.题目: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 二.思路: 斐波那契数列 三.代码:     

  6. 剑指offer:矩形覆盖

    题目描述: 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 解题思路: 和跳台阶那道题差不多.分别以矩形的两条边长做拓 ...

  7. 《剑指offer》矩形覆盖

    一.题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 二.输入描述 输入n 三.输出描述 输出有多少种不同的覆 ...

  8. 【牛客网-剑指offer】矩形覆盖

    题目: 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形.请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 分析: 假设2为高,n为宽 因为高为2固定,会出现固定情况,即无论 ...

  9. 剑指Offer之矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 比如n=3时,2*3的矩形块有3种覆盖方法: 思路:与裴波拉 ...

随机推荐

  1. 【BI】资料收集

    从无到有--什么是BI 什么是BI(Business Intelligence) - @我爱菊花 - 博客园 http://www.cnblogs.com/jiesin/archive/2008/06 ...

  2. MongoDB之集合管理二

    上一博客写了集合的管理,集合里面存放的是文档,因此聪明的你应该能想到这篇是学习文档管理.要说标题应该是文档管理,不过对于文档的管理都是先获得集合对象,在集合对象上调用方法管理文档,所以标题还是对集合的 ...

  3. ASPxComboBox 自带输入法确定之后再搜索解决方法

    <dx:ASPxComboBox ID="comChargeSubject_FixedFee" ClientInstanceName="comChargeSubje ...

  4. 008.在C#中,显式接口VS隐式接口

    原文http://www.codeproject.com/Articles/1000374/Explicit-Interface-VS-Implicit-Interface-in-Csharp (At ...

  5. C# 中的委托和事件 --转载

    作者:张子阳 转载源:  http://www.tracefact.net/CSharp-Programming/Delegates-and-Events-in-CSharp.aspx C# 中的委托 ...

  6. .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7

    目录: .net core 2.2 部署CentOS7(1)安装虚拟机 .net core 2.2 部署CentOS7(2)给虚拟机安装CentOS7 .net core 2.2 部署CentOS7( ...

  7. dubbo的重试机制

    对dubbo熟悉的人对下面的配置一定不会陌生: <dubbo:reference id="xxxx" interface="xx" check=" ...

  8. 安装SQL SEVER 2017 express 轻量入门级软件 安装教程

    1. 首先 打开网址   https://www.microsoft.com/zh-tw/sql-server/sql-server-downloads     点击下载 , 下载完成之后, 点开安装 ...

  9. Vue 基本指令和html常用标签结合使用综合案例(含代码)

    最近项目中要开发一个OA审批:里边涉及到流程跳转(流程较多),具体方案有:直接下一步,选择参与人或者选择某一个流程之后再选择参与人: 我们前端是APiCloud开发,这里我主要使用Vue来实现,把实现 ...

  10. python学习之老男孩python全栈第九期_数据库day003知识点总结 —— MySQL数据库day3

    复习: 1. 增 insert into xx(name) values('root'),('xxx'); insert into xx(name) select id from tb1; 2. 自增 ...