Day10 剑指offer:覆盖大矩形

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

public class Solution {
    public int RectCover(int target) {
         if(target == 1) return 1;
        else if(target == 2) return 2;
        else{
            int res = 0;
            int a = 1;
            int b = 2;
            for(int i=3; i<=target; i++){
                res = a + b;
                a = b;
                b = res;
            }
            return res;
        }
            
    }
}

target=1;return 1;
target=2;return 2;
target > 2;
分两种情况:第一种情况:第一个竖直放置 target-1种情况;
第二种情况:前两个位置水平放置,target-2种情况;
综上:return (target-1)+(target-2)。
即:斐波那契数列。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容