• 10.矩形覆盖 Java


    题目描述

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

    思路

    矩形覆盖

    倒数第一列的放法

    其实,倒数第一列要么就是1个2**1的矩形竖着放,要么就是2个横着放的。如果是竖着放的,那么剩下的就是n-1个小矩形,放法是F(n-1)种;如果是横着放的,放法就是F*(n-2)。

    这样子看,其实这个就是前面的跳台阶问题。

    那么就同样有三种解法,此处只写出一种。

    若n==1,则返回1;

    若n==2,则返回2;

    否则,返回F(n-1)+ F(n-2)

    代码

    public class Solution {
        public int RectCover(int target) {
            if(target <= 2){
                return target;
            }else{
                return RectCover(target-1)+RectCover(target-2);
            }
        }
    }
  • 相关阅读:
    Tornado输出和响应头
    sqlalchemy 学习(二)scoped session
    04:sqlalchemy操作数据库 不错
    sqlalchemy(二)高级用法
    红黑树
    Minimum Window Substring
    Max Points on a Line
    分治算法
    Maximum Subarray
    Word Break
  • 原文地址:https://www.cnblogs.com/feicheninfo/p/10522905.html
Copyright © 2020-2023  润新知