1、递归【斐波那契数列】,通过递推 。【后续优化方式 记忆化递归、以及动态规划】
public class Solution {
public int rectCover(int target) {
if(target<=0)
return 0;
if(target==1||target==2)
return target;
else
return rectCover(target-1)+rectCover(target-2);
}
}
时间O(2^N-1) 即2^n,空间单边递归栈O(N)
2、非递归实现
public class Solution {
public int rectCover(int target) {
if(target<=0)
return 0;
if(target==1||target==2)
return target;
int a=1;
int b=2;
int c=0;
for(int i=3;i<=target;i++)
{
c=a+b;
a=b;
b=c;
}
return c;
}
}
时间O(N)空间O(1)