剑指offer第十题
让我们先来看看这个题目怎么说
思路分析与代码
很多人可能第一思路是用数学的思想去做,去分析,这不错。但是递归的分治思想让我们能够更加清晰地来完成这个题目。
从题目我们可以看出,要不横着放两个,要不就竖着放一个,这不是就出来了吗?和f数列如出一辙啊!
f(n)=f(n-1)+f(n-2);
class Solution {
public:
int rectCover(int number) {
if(number<=2) return number;
int a=1,b=2;
for(int i=3;i<=number;i++){
int c=a+b;
a=b;
b=c;
}
return b;
}
};