前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >冲刺蓝桥2022——dp专项练习题

冲刺蓝桥2022——dp专项练习题

作者头像
秋名山码神
发布2022-12-13 14:54:49
2240
发布2022-12-13 14:54:49
举报
文章被收录于专栏:码神随笔

😁目录

🤞冲刺蓝桥 距离【第十三届蓝桥杯4月9日省赛】仅剩【08天】 🤞

📢今日题目:b bfs专项(题目来自洛谷,蓝桥练习系统)

🍺刷题一览

往期文章推荐-------0基础算法系列

排序(十大排序) 高精度算法 从0->1入门双指针 前缀和 二分 位运算 区间合并

碎碎念

dp——动态规划,题目比较多样化,没有固定的模板,所以说多数的dp方程都要靠经验来写,我们挑几个看吧

🍺乘积最大子数组

代码语言:javascript
复制
class Solution {
public:
    int maxProduct(vector<int>& nums) {
        vector <int> maxF(nums), minF(nums);
        for (int i = 1; i < nums.size(); ++i) {
            maxF[i] = max(maxF[i - 1] * nums[i], max(nums[i], minF[i - 1] * nums[i]));
            minF[i] = min(minF[i - 1] * nums[i], min(nums[i], maxF[i - 1] * nums[i]));
        }
        return *max_element(maxF.begin(), maxF.end());
    }
};

🍻买卖股票

代码语言:javascript
复制
class Solution {
public:
    int maxProfit(vector<int>& prices) {
        if(prices.size() == 0)
            return 0;
        int n = prices.size();
        // f[i][0]: 手上持有股票的最大收益
        // f[i][1]: 手上不持有股票,并且处于冷冻期中的累计最大收益
        // f[i][2]: 手上不持有股票,并且不在冷冻期中的累计最大收益
        vector<vector<int>> f(n, vector<int>(3));
        f[0][0] = -prices[0];
        for (int i = 1; i < n; ++i) {
            f[i][0] = max(f[i - 1][0], f[i - 1][2] - prices[i]);
            f[i][1] = f[i - 1][0] + prices[i];
            f[i][2] = max(f[i - 1][1], f[i - 1][2]);
        }
        return max(f[n - 1][1], f[n - 1][2]);

    }

};
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 😁目录
  • 往期文章推荐-------0基础算法系列
  • 碎碎念
  • 🍺乘积最大子数组
  • 🍻买卖股票
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档