剑指offer(10)矩阵覆盖

(19.1.5)

剑指offer(10)矩阵覆盖

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

这题其实就是青蛙跳。
可以这样想矩阵可以竖着摆,这样就是跳2个台阶,横着摆就是跳一个台阶。观察规律发现
f(n)=f(n-1)+f(n-2)

所以他是一个斐波那契数列。 上代码:

function rectCover(number)
{
       if(number == 1 || number == 0 ||number == 2) {
       return number;
   }
   var one = 1;
   var two = 2;
   var num;
   for(var i = 3; i<=number; ++i)
   {
       num = one + two;
       one = two;
       two =num;
   }
   return two;
}

猜你喜欢

转载自blog.csdn.net/qq_40646960/article/details/85837388