《剑指offer》 第10题扩展 矩形覆盖
矩形覆盖
https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6?tpId=13&tqId=11163&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
将题目等价到青蛙跳台阶,类似于斐波那契数列。
动态规划的两种写法
public class Solution {
public int RectCover(int target) {
if(target<1)
return 0;
if(target ==1||target ==2)
return target;
int first =1;
int second =2;
int result = 0;
for(int i=3;i<=target;i++){
result = first + second;
first = second;
second = result;
}
return result;
}
}使用数组,空间复杂度稍高
public class Solution {
public int RectCover(int target) {
int[] arr = new int[target+1];//为了防止越界
return fib(target,arr);
}
public int fib(int target,int[] arr){
if(target==0) return arr[0]=0;
if(target==1) return arr[1]=1;
if(target==2) return arr[2]=2;
arr[1] =1;
arr[2] =2;
for(int i=3;i<=target;i++){
arr[i] = arr[i-1]+arr[i-2];
}
return arr[target];
}
}白的不能再白的小白想刷剑指offer 文章被收录于专栏
刷刷题
查看14道真题和解析