当前位置: 首页 > news >正文

算法题打卡day50-动态规划 | 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

123. 买卖股票的最佳时机 III - 力扣(LeetCode)

状态:查看索引含义和初始化思路后AC。

增加了两次的限制,相应的就是需要考虑的状态改变,具体的索引含义在代码中:

class Solution {
public:int maxProfit(vector<int>& prices) {int len = prices.size();vector<vector<int>> dp(len, vector<int>(5, 0));// dp[i][0] - 无操作// dp[i][1] - 第一次持有// dp[i][2] - 第一次不持有// dp[i][3] - 第二次持有// dp[i][4] - 第二次不持有dp[0][0] = 0, dp[0][1] = -prices[0], dp[0][2] = 0, dp[0][3] = -prices[0], dp[0][4] = 0;for(int i = 1; i < len; ++i){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[len-1][4];}
};

188. 买卖股票的最佳时机 IV - 力扣(LeetCode)

状态:思路正确,对k的偶数判断有误。

注意对K的处理和遍历过程中的相对变化,代码如下:

class Solution {
public:int maxProfit(int k, vector<int>& prices) {// 就是j的变换,从2维度变成5维再变成k维int len = prices.size();if(len == 0) return 0;vector<vector<int>> dp(len, vector<int>(2*k+1, 0));// initialdp[0][0] = 0;for(int i = 1; i < 2*k; i += 2){dp[0][i] = -prices[0];}for(int i = 1; i < len; ++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[len-1][2*k];}
};

相关文章:

算法题打卡day50-动态规划 | 123.买卖股票的最佳时机III、188.买卖股票的最佳时机IV

123. 买卖股票的最佳时机 III - 力扣&#xff08;LeetCode&#xff09; 状态&#xff1a;查看索引含义和初始化思路后AC。 增加了两次的限制&#xff0c;相应的就是需要考虑的状态改变&#xff0c;具体的索引含义在代码中&#xff1a; class Solution { public:int maxProfit(…...

jvm与锁

今天是《面霸的自我修养》的第二弹&#xff0c;内容是Java并发编程中关于Java内存模型&#xff08;Java Memory Model&#xff09;和锁的基础理论相关的问题。这两块内容的八股文倒是不多&#xff0c;但是难度较大&#xff0c;接下来我们就一起一探究竟吧。 数据来源&#xff…...

零基础安装pycuda

零基础安装pycuda 前言安装Visual Studio安装C/C环境添加环境变量 安装pycuda查看系统位数查看python版本下载whl文件 前言 最近开始学习基于python的cuda编程&#xff0c;记录一下pycuda的安装。 在安装pycuda之前&#xff0c;首先需要有NVIDIA的独立显卡并且要安装CUDA和CUD…...

Streamlit 讲解专栏(十一):数据可视化-图表绘制详解(中)

文章目录 1 前言2 绘制交互式散点图3 定制图表主题4 增强数据可视化的交互性与注释步骤1步骤二 5 结语 1 前言 在上一篇博文《 Streamlit 讲解专栏&#xff08;十&#xff09;&#xff1a;数据可视化-图表绘制详解&#xff08;上&#xff09;》中&#xff0c;我们学习了一些关…...

d3dx9_35.dll丢失怎么解决

今天&#xff0c;我将为大家介绍关于电脑d3dx9_35.dll丢失的4种详细修复方法。希望通过这次分享&#xff0c;能够帮助大家解决在日常工作和生活中遇到的一些问题。 首先&#xff0c;让我们来了解一下d3dx9_35.dll是什么&#xff1f; d3dx9_35.dll是一个非常重要的动态链接库文…...

Ansible自动化运维工具(二)

目录 &#xff08;6&#xff09;copy模块 &#xff08;7&#xff09;file模块 ​编辑​编辑&#xff08;8&#xff09;hostname模块 &#xff08;9&#xff09;ping模块 &#xff08;10&#xff09;yum 模块 &#xff08;11&#xff09;service/system模块 ​编辑 ​…...

uniapp中使用原生canvas标签绘制视频帧来模拟拍照,拍照后将图绘制在另外一个canvas上编辑画图,这样反复操作

uniapp中使用原生canvas标签绘制视频帧来模拟拍照&#xff0c;拍照后将图绘制在另外一个canvas上编辑画图&#xff0c;这样反复操作会导致ios系统上白屏&#xff0c;canvas2d上下文为null,经查阅找到相关资料 IOS 创建Canvas过多导致getContext(‘2d’) 返回null 总 Canvas 内存…...

机器视觉工程师们,学习是工作以外的事情

面试时&#xff0c;领导问你&#xff0c;很多技术问题&#xff0c;你永远的回答是&#xff0c;我可以学。 公司以为你来公司的目标就是学习&#xff0c;学完就跑。 那你进公司的目标到底是什么&#xff1f; 我认为你&#xff0c;你最好想好再回答。 对于每一家公司来说&#xf…...

数据驱动的生活:探索未来七天生活指数API的应用

前言 随着科技的不断发展&#xff0c;数据已经成为我们生活中不可或缺的一部分。从社交媒体上的点赞和分享&#xff0c;到电子邮件和搜索引擎的历史记录&#xff0c;数据正在以前所未有的速度积累。而这些数据的利用不仅仅停留在社交媒体或商业领域&#xff0c;它们还可以为我…...

【数据分享】2006-2021年我国城市级别的集中供热相关指标(免费获取\20多项指标)

《中国城市建设统计年鉴》中细致地统计了我国城市市政公用设施建设与发展情况&#xff0c;在之前的文章中&#xff0c;我们分享过基于2006-2021年《中国城市建设统计年鉴》整理的2006—2021年我国城市级别的市政设施水平相关指标、2006-2021年我国城市级别的各类建设用地面积数…...

2022年研究生数学建模竞赛优秀论文汇总

A题&#xff1a;移动场景超分辨定位问题 参考代码论文1 论文2 论文3 论文4 论文5 论文6 论文7B题&#xff1a; 方形件排样优化与订单组批问题探析 参考代码论文1 论文2 论文3 论文4 论文5 论文6 论文7C题&#xff1a; 汽车制造涂装-总装缓存调序区调度优化问题论文1 论文2 论文…...

阿里云申请免费SSL证书的两种验证方式及配置服务器Tomcat升级HTTPS协议

通用教程&#xff0c;其他服务商的免费 SSL 证书也差不多是这个流程。&#xff08;至少腾讯云的操作步骤和本文是一致&#xff0c;嘻嘻&#xff01;&#xff09; 申请 SSL 证书 首先在阿里云上创建并申请 SSL 证书&#xff0c;之后选择 DNS 验证的方式&#xff0c;一种是手动配…...

SQL Server 和 MySql 语法和关键字的区别

SQL Server 和 MySql 语法和关键字的区别 ——用于SQLServer到MySql的转换 mysql的ifnull()函数对应sql的isnull()函数;mysql的存储过程中变量的定义去掉;mysql的每句结束要用";"SQLServer存储过程的AS在MySql中需要用begin .....end替换字符串连接用concat()函数;…...

2023_Spark_实验三:基于IDEA开发Scala例子

一、创建一个空项目&#xff0c;作为整个项目的基本框架 二、创建SparkStudy模块&#xff0c;用于学习基本的Spark基础 三、创建项目结构 1、在SparkStudy模块下的pom.xml文件中加入对应的依赖&#xff0c;并等待依赖包下载完毕。 在pom.xml文件中加入对应的依赖 ​<!-- S…...

2023年高教社杯数学建模思路 - 案例:异常检测

文章目录 赛题思路一、简介 -- 关于异常检测异常检测监督学习 二、异常检测算法2. 箱线图分析3. 基于距离/密度4. 基于划分思想 建模资料 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 一、简介 – 关于异常…...

C# Dapper 操作Oracle数据库

nuget安装内容 1.配置连接字符串 OracleConnectionString这个可用 {"Logging": {"LogLevel": {"Default": "Information","Microsoft.AspNetCore": "Warning"}},"AllowedHosts": "*","…...

element侧边栏子路由点击不高亮问题

最近自己封装侧边栏 又碰到了点击子路由不高亮的问题 <template><div class"aside"><el-scrollbar :vertical"true" class"scrollbar_left_nav"><el-menu :default-active"defaultActive" :collapse"$stor…...

C# 试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)

C# 在调用Cdll时&#xff0c;可能会出现 &#xff1a;试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)这个错误。 一般情况下是C#目标平台跟Cdll不兼容&#xff0c;64位跟32位兼容性问题&#xff0c; a.客户端调用Cdll报的错则&#xff0c; 1)允许的话把C#客户端…...

Linux 进程的睡眠和唤醒详解

概要 在Linux中&#xff0c;仅等待CPU时间的进程称为就绪进程&#xff0c;它们被放置在一个运行队列中&#xff0c;一个就绪进程的状 态标志位为 TASK_RUNNING。一旦一个运行中的进程时间片用完&#xff0c; Linux 内核的调度器会剥夺这个进程对CPU的控制权&#xff0c;并且从运…...

AI 绘画Stable Diffusion 研究(十五)SD Embedding详解

大家好&#xff0c;我是风雨无阻。 本期内容&#xff1a; Embedding是什么&#xff1f;Embedding有什么作用&#xff1f;Embedding如何下载安装&#xff1f;如何使用Embedding&#xff1f; 大家还记得 AI 绘画Stable Diffusion 研究&#xff08;七&#xff09; 一文读懂 Stab…...

基于DRAMsim3的扩散模型训练加速仿真:内存时延与能耗分析

基于DRAMsim3的扩散模型训练加速仿真:内存时延与能耗分析 摘要 扩散模型在生成式AI领域取得了巨大成功,但其训练过程极其昂贵,主要体现在对内存带宽的巨大需求(尤其是Attention机制和梯度存储)。本文聚焦于利用DRAMsim3模拟器,在系统架构层面仿真扩散模型(如DDPM)训练…...

JavaScript高效PPTX文档处理方案:js-pptx深度解析与实战指南

JavaScript高效PPTX文档处理方案&#xff1a;js-pptx深度解析与实战指南 【免费下载链接】js-pptx Pure Javascript reader/writer for PowerPoint 项目地址: https://gitcode.com/gh_mirrors/js/js-pptx 在当今数字化办公环境中&#xff0c;PowerPoint演示文稿的自动化…...

别再纠结FP32了!手把手教你用PyTorch的BF16和FP16加速大模型训练(附完整代码)

突破显存瓶颈&#xff1a;PyTorch混合精度训练实战指南 当你在深夜盯着屏幕上那个"CUDA out of memory"的错误提示时&#xff0c;是否感到一阵无力&#xff1f;大模型训练就像是在走钢丝——一边是宝贵的显存资源&#xff0c;另一边是模型性能的悬崖。作为一名经历过…...

Python量化交易系统:专业回测与组合优化

先把最重要的前提说清楚&#xff1a;国内禁止未经许可的程序化自动交易&#xff0c;下面只做量化研究、回测、信号分析&#xff0c;不含实盘自动下单这套是专业完整版量化系统&#xff0c;Python 可直接运行&#xff0c;结构完整、可扩展包含你要的所有高级功能&#xff1a;多股…...

关于sms,voip路由以及smpp

SMS 和 VoIP 路由是国际通讯行业核心技术&#xff0c;用于高效传递短信和语音通话。SMPP 协议则是 SMS 传输的关键标准&#xff0c;帮助运营商和企业实现全球消息互联。SMS 基础知识SMS&#xff08;Short Message Service&#xff0c;短消息服务&#xff09;是手机最常见的文本…...

突破可视化边界:Charticulator重新定义数据叙事的技术实践

突破可视化边界&#xff1a;Charticulator重新定义数据叙事的技术实践 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 在数据可视化领域&#xff0c;传统工具往往…...

实战指南:利用快马平台为不同项目类型智能定制idea开发环境与工具链

今天想和大家分享一个实战经验&#xff1a;如何根据不同项目类型&#xff0c;快速定制专属的IDEA开发环境。作为开发者&#xff0c;我们经常需要切换不同技术栈&#xff0c;每次手动安装插件、配置SDK的过程实在太费时间。最近发现用InsCode(快马)平台可以智能解决这个问题&…...

实战演练:三种常见办公文档加密破解技巧(ZIP密码/ZIP伪加密/DOC密码)

1. ZIP密码破解实战&#xff1a;从入门到精通 工作中经常会遇到这种情况&#xff1a;同事发来的压缩包设置了密码&#xff0c;但对方忘记告诉你密码是什么&#xff1b;或者多年前自己加密的压缩包&#xff0c;现在怎么也打不开了。这时候就需要掌握一些ZIP密码破解的技巧。 我遇…...

用QT5的QTcpSocket做一个TCP调试助手:连接单片机/服务器测试数据收发

用QT5打造专业级TCP调试助手&#xff1a;从基础通信到工业级工具开发 在嵌入式开发和物联网项目中&#xff0c;TCP通信调试是每个工程师都会遇到的常规需求。无论是与STM32单片机通信&#xff0c;还是测试PLC设备的网络功能&#xff0c;亦或是验证云服务器的数据接口&#xff0…...

SQLCoder多语言测试:日文与德文SQL生成的终极指南

SQLCoder多语言测试&#xff1a;日文与德文SQL生成的终极指南 【免费下载链接】sqlcoder 项目地址: https://ai.gitcode.com/hf_mirrors/defog/sqlcoder SQLCoder是一款强大的AI SQL生成工具&#xff0c;能够根据自然语言问题自动生成准确的SQL查询语句。本文将深入探讨…...