Leetcode 276. Paint Fence

本文探讨了一道具有多种动态规划解决方案的编程题目,作者分享了自己未能完全解决但已接近答案的遗憾,并表示将在复盘时研究LC官方的解答和其他方法。代码实现中展示了时间复杂度为O(n)、空间复杂度为O(n)的解决方案,涉及动态规划数组的初始化和状态转移方程。
摘要由CSDN通过智能技术生成

在这里插入图片描述
方法1: 这道题还是挺不错的,然后我没做出来,但是我已经很接近答案了,还是很可惜的。这道题有很多种dp的做法,我只看了其中的一种,是lc官方解答2,复盘的时候有时间可以把其他额方法都看一遍。这个方法时间复杂n,空间复杂n。

class Solution {
    public int numWays(int n, int k) {
        if(n == 0) return 0;
        
        int[][] dp = new int[n + 1][2];
        dp[1][0] = k;
        for(int i = 2; i <= n; i++){
            dp[i][0] = (dp[i - 1][0] + dp[i - 1][1]) * (k - 1);
            dp[i][1] = dp[i - 1][0];
        }
        return dp[n][0] + dp[n][1];
    }
}

总结:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值