《剑指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];
 }
}

刷刷题

全部评论

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务