美文网首页剑指offer
剑指offer(十)矩形覆盖

剑指offer(十)矩形覆盖

作者: 向前的zz | 来源:发表于2020-04-08 10:43 被阅读0次

点击进入 牛客网题库:矩形覆盖

题目描述

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

比如n=3时,2*3的矩形块有3种覆盖方法:

6384065_1581999858239_64E40A35BE277D7E7C87D4DCF588BE84.png

方法一 递归

public class Solution {
   /**
   * 这个是切割就拿最后一个砖可以的情况
   * 就是最后一个砖放 2块砖,或者放一块砖
   * 所以推出 f(n) = f(n-1) + f(n-2) 这种子问题
   *
   */
   public int RectCover(int target) {
       if(target == 0) {
           return 0;
       }
       if(target == 1) {
           return 1;
       }
       if(target == 2) {
           return 2;
       }
       
       return RectCover(target-1)+ RectCover(target-2);
   }
}

方法二 迭代

public class Solution {
    /**
    * 这个是切割就拿最后一个砖可以的情况
    * 就是最后一个砖放 2块砖,或者放一块砖
    * 所以推出 f(n) = f(n-1) + f(n-2) 这种子问题
    *
    */
    public int RectCover(int target) {
        if(target == 0) {
            return 0;
        }
        if(target == 1) {
            return 1;
        }
        if(target == 2) {
            return 2;
        }
           
        int first = 1;
        int second = 2;
        int result = 0;
        
        for(int i = 3; i <= target; i++ ) {
            result = first + second;
            int tmp = first;
            first = second;
            second = tmp + second;
        }
        
        return result;
    }
}

相关文章

  • 剑指offer(十)矩形覆盖

    写在前面: 为了增长一下自己的数据结构能力,也为了面试准备,准备将剑指Offer做一下,并与各位分享,希望各位可以...

  • 剑指offer(十)矩形覆盖

    点击进入 牛客网题库:矩形覆盖 题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形...

  • [剑指offer] 矩形覆盖

    本文首发于我的个人博客:尾尾部落 题目描述 我们可以用2 * 1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2...

  • [剑指Offer]矩形覆盖

    本文首发于我的个人博客Suixin’s Blog原文: https://suixinblog.cn/2019/03...

  • 剑指offer----矩形覆盖

    题目:我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总...

  • [剑指offer][Java]矩形覆盖

    题目 我们可以用2×1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2×1的小矩形无重叠地覆盖一个2×n的大矩形...

  • 剑指Offer--矩形覆盖

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

  • 剑指 offer:10、矩形覆盖

    10. 矩形覆盖 题目描述 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖...

  • 剑指Offer - 10 - 矩形覆盖

    题目描述 矩形覆盖 我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*...

  • 剑指offer-矩形覆盖

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

网友评论

    本文标题:剑指offer(十)矩形覆盖

    本文链接:https://www.haomeiwen.com/subject/frpzphtx.html