矩形覆盖
2018-02-28 00:36
218 查看
题目描述
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?解题思路
首先根据题意可以知道,2*1的矩形摆放方式只有两种,要么是横着放,要么是竖着放,但是如果当这块2*1的矩形横着放则肯定有一块会横着放在这块下面,所以就相当于这个矩形的长度缩小了2个单位;但如果这块2*1的矩形竖着放,无疑是将这个矩形长度缩小1个单位而已,由此可以得出结论,本题使用递归的方式来计算。递归解法:
public class Solution { public int RectCover(int target) { if(target < 0){ return 0; }else if(target == 1){ return 1; }else if(target == 2){ return 2; }else{ return RectCover(target-1) + RectCover(target-2); } } }
非递归解法
public class Solution { public int RectCover(int target) { int back1 = 1; int back2 = 1; if(target <= 0){ return 0; } if(target ==1){ return 1; } for(int i=2;i<=target;i++){ int t = back1 + back2; back1 = back2; back2 = t; } return back2; } }
相关文章推荐
- 矩形覆盖
- UVA 10173 最小矩形覆盖(凸包+旋转卡壳)
- 【BZOJ1185】最小矩形覆盖 计算几何 凸包 旋转卡壳
- 矩形覆盖
- 斐波那契数列及其变形问题(跳台阶,变态跳台阶,矩形覆盖)
- luogu1034[矩形覆盖]
- 矩形覆盖问题
- 矩形覆盖
- hdu1255 覆盖的面积(矩形面积交+扫描线)
- CDOJ 1335-求恰好k次覆盖矩形面积并- (线段树 扫描线 离散化)
- hdu1255 覆盖的面积(线段树+扫描线+离散化,求矩形面积并)
- HDU 5251 矩形面积(二维凸包旋转卡壳最小矩形覆盖问题) --2015百度之星题目
- HDU 5251 矩形面积(二维凸包旋转卡壳最小矩形覆盖问题) --2015百度之星题目
- 剑指offer(十)矩形覆盖
- Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
- Android SurfaceView 绘图覆盖刷新及脏矩形刷新方法
- HDU 1255 覆盖的面积 (求矩形面积的交)
- UVA10173Smallest Bounding Rectangle+最小矩形覆盖
- 剑指offer——跳台阶&&变态跳台阶&&矩形覆盖
- 剑指Offer编程练习010——矩形覆盖