代码随想录算法训练营第23期day49| 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

news2024/11/26 1:29:25

目录

一、(leetcode 123)买卖股票的最佳时机III

二、(leetcode 188)买卖股票的最佳时机IV


一、(leetcode 123)买卖股票的最佳时机III

力扣题目链接

增加了两次的限制,相应的就是需要考虑的状态改变

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        if (prices.size() == 0) return 0;
        vector<vector<int>> dp(prices.size(), vector<int>(5, 0));
        dp[0][1] = -prices[0];
        dp[0][3] = -prices[0];
        for (int i = 1; i < prices.size(); i++) {
            dp[i][0] = dp[i - 1][0];
            dp[i][1] = max(dp[i - 1][1], dp[i - 1][0] - prices[i]);
            dp[i][2] = max(dp[i - 1][2], dp[i - 1][1] + prices[i]);
            dp[i][3] = max(dp[i - 1][3], dp[i - 1][2] - prices[i]);
            dp[i][4] = max(dp[i - 1][4], dp[i - 1][3] + prices[i]);
        }
        return dp[prices.size() - 1][4];
    }
};

二、(leetcode 188)买卖股票的最佳时机IV

力扣题目链接

class Solution {
public:
    int maxProfit(int k, vector<int>& prices) {

        if (prices.size() == 0) return 0;
        vector<vector<int>> dp(prices.size(), vector<int>(2 * k + 1, 0));
        for (int j = 1; j < 2 * k; j += 2) {
            dp[0][j] = -prices[0];
        }
        for (int i = 1;i < prices.size(); i++) {
            for (int j = 0; j < 2 * k - 1; j += 2) {
                dp[i][j + 1] = max(dp[i - 1][j + 1], dp[i - 1][j] - prices[i]);
                dp[i][j + 2] = max(dp[i - 1][j + 2], dp[i - 1][j + 1] + prices[i]);
            }
        }
        return dp[prices.size() - 1][2 * k];
    }
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1202449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Cesium 展示——改变点与线的关联关系后可实现对点或线的单独操作

文章目录 需求分析1. 实现区域选中状态(更改前)2. 循环遍历实体判断该区域内的实体(更改前)1. 将每一条线和线所对应的两个点进行关联(更改后的逻辑)2. 将每一个点和所对应的两条线进行关联(更改后的逻辑)3. 在新增点后修改【线、点】【点、线】间的关联关系(更改后的…

scDrug:从scRNA-seq到药物反应预测

scRNA-seq技术允许在转录组水平上对数千个细胞进行测量。scRNA-seq正在成为研究肿瘤微环境中细胞成分及其相互作用的重要工具。scRNA-seq也被用于揭示肿瘤微环境模式与临床结果之间的关联&#xff0c;并在复杂组织中剖析药物治疗的细胞特异性效应。scRNA-seq的最新进展推动了疾…

SAP 52策略测试简介

我们在前面测试了50策略按单生产,创建完计划独立需求后,通过主数据中的独立集中的字段控制下层物料是否能通过计划订单转成生产订单和采购订单。 52策略其实和50策略非常的相似。52策略就是按库存生产,创建完计划独立需求后的结果和50策略是一样的。 1、我们先看下50策略和…

【避雷选刊】Springer旗下2/3区,2个月录用!发文量激增,还能投吗?

计算机类 • 好刊解读 前段时间小编分析过目前科睿唯安数据库仍有8本期刊处于On Hold状态&#xff0c;其中包括4本SCIE、4本ESCI期刊&#xff08;&#x1f449;详情可见&#xff1a;避雷&#xff01;又有2本期刊被标记“On Hold”&#xff01;含中科院2区&#xff08;TOP&…

Vue 的h()

在你的示例中&#xff0c;h(div, { id: foo }, hello) 使用的是 Vue.js 中的虚拟DOM(hyperscript)的写法&#xff0c;这种写法用于创建虚拟节点。让我来详细解释一下&#xff1a; h 是一个用于创建虚拟节点的函数&#xff0c;通常是由 Vue.js 或其他类似的库提供的。这个函数通…

PostGIS学习教程二:PostGIS安装和创建空间数据库

一、安装PostgreSQL 在安装PostGIS前首先必须安装PostgreSQL&#xff0c;然后在安装好的Stack Builder中选择安装PostGIS组件。 PostgreSQL安装文件下载地址是https://www.enterprisedb.com/downloads/postgres-postgresql-downloads 这里使用的PostgreSQL版本是9.6。 双击…

人工智能与发电玻璃:未来能源技术的融合

人工智能与发电玻璃&#xff1a;未来能源技术的融合 摘要&#xff1a;本文探讨人工智能与发电玻璃这两项技术的结合&#xff0c;共同推动能源领域的创新。本文将介绍发电玻璃工作原理及应用、人工智能在发电玻璃的应用领域以及共同为可持续能源发展做出贡献。 一、引言 随着科…

新加坡建筑设备公司【Ten-League】申请3230万美元纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于新加坡的重型建筑设备和工程咨询服务公司Ten-League International Holdings Limited&#xff08;简称&#xff1a;Ten-League&#xff09;近期已向美国证券交易委员会&#xff08;SEC&am…

十六、W5100S/W5500+RP2040树莓派Pico<HTTP Client上传数据到OneNET>

文章目录 1 前言2 简介2 .1 什么是HTTP&#xff1f;2.2 HTTP Client的优点2.3 HTTP Client工作原理2.4 HTTP Client应用场景 3 WIZnet以太网芯片4 HTTP Client网络设置示例概述以及使用4.1 流程图4.2 准备工作核心4.3 连接方式4.4 主要代码概述4.5 结果演示 5 注意事项6 相关链…

嵌入式杂记 -- MCU的大小端模式

MCU的大小端模式 大端模式小端模式大小端模式测试联合体概念MCU大小端模式测试大端模式测试小端模式测试 大小端模式转换 在进行MCU开发的时候&#xff0c;我们需要注意MCU的数据存储模式&#xff0c;在嵌入式中有两种不同的存储模式&#xff0c;分别是 大端模式和小端模式。 …

Android Studio 代码上传gitLab

1、项目忽略文件 2选择要上传的项目 3、添加 首次提交需要输入url 最后在push

广告业展示服务预约小程序的效果如何

虽然不少人不会与广告业直接接触&#xff0c;但各种形式的广告却是充斥在人们生活中&#xff0c;线下的传单展板、线上的视频、音频、图文等都是广告很好的传播通道&#xff0c;同时广告业能扩展的客户属性也非常广&#xff0c;下到超市小摊&#xff0c;上到企业公司都有大小相…

PaaS基础建设

PaaS&#xff08;Platform-as-a-Service&#xff1a;平台即服务&#xff09;是应用程序和服务的部署平台。Paas为开发、测试和管理软件应用程序提供所需的开发环境&#xff0c;是云计算服务类型之一。 PaaS是什么&#xff1f;IaaS、SaaS、PaaS三种云服务区别 PaaS&#xff08;P…

Illustrator 2024 v28.0(矢量插画设计)

Illustrator是一款功能强大的矢量图形编辑软件&#xff0c;它是设计师、艺术家和创意专业人士的首选工具&#xff0c;用于创建和编辑各种矢量图形、插图、图标、标志和艺术作品。 以下是Adobe Illustrator的主要功能和特点&#xff1a; 矢量图形编辑&#xff1a;Adobe Illustra…

centos7系统离线安装tcpdump抓包软件、使用教程

tcpdump 是Linux系统下的一个强大的命令&#xff0c;可以将网络中传送的数据包完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤&#xff0c;并提供and、or、not等逻辑语句来帮助你去掉无用的信息。 本教程对tcpdump命令使用进行讲解说明&#xff0c;通…

Autosar模块介绍:Memory_6(FLS-闪存驱动)

上一篇 | 返回主目录 | 下一篇 Autosar模块介绍&#xff1a;Memory_6(FLS-闪存驱动 1 基本术语解释2 Fls组成结构图3 Fls基本操作3.1 通用规则说明3.2 加载、执行和删除flash访问代码 4 Fls常用操作时序4.1 初始化4.2 同步操作函数4.3 异步操作函数4.4 取消正在执行的操作 1 …

企业真正的性能测试,压测-内存泄露案例分析,一篇概全...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、环境配置 1&a…

npm install导致的OOM解决方案

文章目录 问题记录解决方法Linux重启排查方法 如何排查Linux自动重启的原因 问题记录 我在华为云服务器配置npm开发环境的时候&#xff0c; SSH远程连接一直掉线&#xff0c;无奈提了工单&#xff0c;被告知是NPM install导致的OOM问题。无语了&#xff0c;破NPM还有这个问题呢…

Android问题笔记四十四:关于RecyclerView出现Inconsistency detected崩溃

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&…

项目二:家庭记账系统

目录 一&#xff1a;目标 二&#xff1a;需求说明 2.1&#xff1a;基本资金和收支明细的记录 2.2&#xff1a;键盘访问的实现 三&#xff1a;实现步骤 3.1&#xff1a;实现主程序结构 3.2&#xff1a;实现收入和支出登记处理 3.3&#xff1a;工具类的使用 四&#xff1a;代…