当前位置: 首页> 娱乐> 影视 > 安康教育平台_北京又有疫情了吗今天_如何宣传自己的网站_网络营销百科

安康教育平台_北京又有疫情了吗今天_如何宣传自己的网站_网络营销百科

时间:2025/7/10 9:23:59来源:https://blog.csdn.net/2302_80418176/article/details/144660721 浏览次数:0次
安康教育平台_北京又有疫情了吗今天_如何宣传自己的网站_网络营销百科

闲话少叙,直接开始我们的第十三天语法学习

目录

第一题

题目链接

题目解析

代码原理

代码编写

第二题

题目链接

题目解析

代码原理

代码编写

第三题

题目链接

题目解析

代码原理

代码编写


第一题

题目链接

LCR 091. 粉刷房子 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int minCost(vector<vector<int>>& costs) {

        int n = costs.size();

        //建表

        vector<vector<int>> dp(n + 1,vector<int>(3));

        //填表

        for(int i = 1; i <= n; i++)

        {

            dp[i][0] = min(dp[i - 1][1], dp[i - 1][2]) + costs[i - 1][0];

            dp[i][1] = min(dp[i - 1][0], dp[i - 1][2]) + costs[i - 1][1];

            dp[i][2] = min(dp[i - 1][0], dp[i - 1][1]) + costs[i - 1][2];

        }

        return min(min(dp[n][0],dp[n][1]),dp[n][2]);

    }

};

注意:这里的初始化部分,我已经将其省略,因为vector初始化会自动初始化为0,因此可以省略,而不是不需要初始化

第二题

题目链接

309. 买卖股票的最佳时机含冷冻期 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int maxProfit(vector<int>& prices) {

        int n = prices.size();

        //建表

        vector<vector<int>> dp(n, vector<int>(3));

        //初始化

        dp[0][0] = -prices[0];

        //填表

        for(int i = 1; i < n; i++)

        {

            dp[i][0] = max(dp[i - 1][0], dp[i - 1][1] - prices[i]);

            dp[i][1] = max(dp[i - 1][1], dp[i - 1][2]);

            dp[i][2] = dp[i - 1][0] + prices[i];

        }

        return max(dp[n - 1][1], dp[n - 1][2]);

    }

};

第三题

题目链接

714. 买卖股票的最佳时机含手续费 - 力扣(LeetCode)

题目解析

代码原理

代码编写

class Solution {

public:

    int maxProfit(vector<int>& prices, int fee) {

        int n = prices.size();

        //建表

        vector<int> f(n),g(n);

        //初始化

        f[0] = -prices[0];

        //填表

        for(int i = 1; i < n; i++)

        {

            f[i] = max(f[i - 1], g[i - 1] - prices[i]);

            g[i] = max(g[i - 1], f[i - 1] + prices[i] - fee);

        }

        return g[n - 1];

    }

};

今日总结:

1. 三道题对于初学者而言都是相对比较绕的

2.第二题和第三题涉及到多个状态的,我们在状态表示部分一定要标清楚dp[i]有几种状态,在写状态转移方程时也需要通过画图(也就是状态积)进行分析

3.如何看懂状态积的小技巧:箭头位置表示第i天,它的起始位置表示第i - 1天

那么本篇文章算法的学习就先到这里,我们下期文章再见!!!

记得一键三联哦!!!

关键字:安康教育平台_北京又有疫情了吗今天_如何宣传自己的网站_网络营销百科

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: