题解 | #矩形覆盖#

矩形覆盖

https://www.nowcoder.com/practice/72a5a919508a4251859fb2cfb987a0e6

public class Solution {
    /*方式一:递归*/
    public int rectCover(int target) {
        if(target == 0) return 0;
        if(target == 1) return 1;
        if(target == 2) return 2;
        return rectCover(target-1)+rectCover(target-2);
    }

    /*方式二:动态规划思想--dp存值*/
    public int rectCover2(int target) {
        if(target == 0) return 0;
        if(target == 1) return 1;
        if(target == 2) return 2;
        int[] dp = new int[target + 1];
        dp[1]=1;
        dp[2]=2;
        for (int i = 3; i <= target; i++) {
            dp[i] = dp[i-1]+dp[i-2];
        }
        return dp[target];
    }

    /*方式三:动态规划思想--存结果值*/
    public int rectCover3(int target) {
        if(target == 0) return 0;
        if(target == 1) return 1;
        if(target == 2) return 2;
        int num1=1;
        int num2=2;
        int result = 0;
        for (int i = 3; i <=target; i++) {
            result = num1+num2;
            num1 = num2;
            num2 = result;
        }
        return result;
    }
}

解题思想:递归(找规律)或者动态规划(数组存值或者结果赋值)

#算法##算法笔记#
全部评论

相关推荐

迷茫的大四🐶:干脆大厂搞个收费培训得了,这样就人均大厂了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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