关闭

剑指offer--矩形覆盖

标签: 剑指offer-java实现面试在线编程
385人阅读 评论(0) 收藏 举报
分类:

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


思路:爬楼梯的变种。


代码:

public class Solution {
    static int[] dp = new int[10000];

    public int RectCover(int target) {
        if ( target == 1){
            dp[target] = 1;
            return dp[target];
        }else if(target == 2){
            dp[target] = 2;
            return dp[target];
        }else{
            for ( int i = 3 ; i <= target ; i++){
                dp[i] = dp[i-1] + dp[i-2];
            }
            return dp[target];
        }
    }
}
0
0
查看评论

剑指offer--矩形覆盖

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? public class Solution { public int RectCover(int target) { if(target==1)...
  • kangaroo835127729
  • kangaroo835127729
  • 2015-04-10 21:45
  • 752

剑指offer--(12) 矩形覆盖

剑指offer–(10) 矩形覆盖 * 问题描述* 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路描述 f(0)= 0; f (1) =1; f(2) =2 f(3)=f(3-1)+f(...
  • u012485480
  • u012485480
  • 2017-09-17 08:03
  • 429

剑指offer--(10) 矩形覆盖

剑指offer–(10) 矩形覆盖* 问题描述* 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
  • u012485480
  • u012485480
  • 2017-09-16 21:12
  • 53

剑指Offer:面试题6重建二叉树

重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 前序遍历:是先根节...
  • u012162920
  • u012162920
  • 2016-08-17 14:18
  • 220

剑指offer--矩形覆盖--简单DP

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? public static int dp[]; public static void main(String[] args) { // TO...
  • obession
  • obession
  • 2017-06-21 10:32
  • 68

剑指offer——矩形覆盖问题

题目描述:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路:我们采用从能够简单到复杂的思路思考这个问题,当n=1的时候,只有一个2*1的矩形,所以只有一种方法,记为f(1)=1;当n=2的时候,是两个2*1的矩形,这...
  • sbq63683210
  • sbq63683210
  • 2016-07-30 10:35
  • 754

剑指Offer——重建二叉树——C++

重建二叉树 题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 思路:根据前序第一个字符是...
  • hellozmz
  • hellozmz
  • 2016-11-25 10:52
  • 814

剑指offer-10.矩形覆盖

题目:我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路:斐波那契数列的变种,为什么是斐波那契数列的变种?首先我们认为小矩形为N的时候的总数是N,而那么根据组合数学里的加法原理, 我把此题分为两类,第一类就...
  • I_love_blog
  • I_love_blog
  • 2017-04-24 19:20
  • 108

剑指Offer--丑数

把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 public class 丑数 { public static void main(String[] ar...
  • obession
  • obession
  • 2017-08-08 16:27
  • 48

剑指:矩形覆盖

题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法? 思路: 第一块有两种方式:横着放和竖着放 横这放对应为发f(n-2); 竖着放下一步的放方法为f(n-1); 所以总的放的方法为f(n)=f(n...
  • u010958446
  • u010958446
  • 2017-02-20 23:14
  • 77
    个人资料
    • 访问:155577次
    • 积分:4928
    • 等级:
    • 排名:第6843名
    • 原创:329篇
    • 转载:0篇
    • 译文:0篇
    • 评论:80条
    博客专栏
    最新评论