题目描述:

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

解题思路:

  • 由图我们可以发现其和斐波那契数列一样的规律

覆盖矩形.png

解题代码:

  1. function rectCover(number)
  2. {
  3. // write code here
  4. if(number <= 2) return number;
  5. const res = [0,1,2]; // 索引为其对应的台阶数
  6. for(let i = 3;i <= number;i++) {
  7. res[i] = res[i-1] + res[i-2];
  8. }
  9. return res[res.length - 1];
  10. }