剑指Offer--10.矩形覆盖
2017-09-17 21:40
573 查看
题目描述:
我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
python代码:
# -*- coding:utf-8 -*- class Solution: def rectCover(self, number): # write code here if number <=0: return 0 a = 1 b = 2 if number == 1: return 1 for _ in xrange(number - 1): a,b = b,a+b return a
解析:
这道题类似与动态规划,要从简单的情况考虑,然后扩展。对于2*1的矩形,只有一种方式;
对于2*2的矩形,有2种方式,都横着排和都竖着排。
对于3*1的矩形,就是2*1和2*2的加和 f(3) = f(1) + f(2)
以此类推,f(n) = f(n-1) +f(n-2) 又是裴波那契数列
相关文章推荐
- 牛客网-剑指offer-10-矩形覆盖
- 剑指offer_10 矩形覆盖
- 剑指OFFER----10、矩形覆盖
- 剑指Offer(10)______矩形覆盖
- 剑指offer-10.矩形覆盖
- 【剑指offer】10矩形覆盖
- 剑指offer题解C++【10】矩形覆盖
- [剑指Offer] 10.矩形覆盖
- 【剑指Offer面试题】 九度OJ1390:矩形覆盖
- 【剑指 offer】三,矩形覆盖(java实现)
- 剑指offer-算法题练习:part10 矩形覆盖-斐波那契数列问题
- 剑指offer之矩形覆盖
- 剑指Offer - 九度1390 - 矩形覆盖
- 剑指offer-题目1390:矩形覆盖 (2014.1.5)
- 剑指offer:矩形覆盖(python)
- [剑指offer]矩形覆盖
- [剑指Offer]3.矩形覆盖
- 剑指Offer——矩形覆盖
- 【剑指offer】覆盖矩形
- 剑指offer 矩形覆盖