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

Day.35 | 121.买卖股票的最佳时机 122.买卖股票的最佳时机II 123.买卖股票的最佳时机III

121.买卖股票的最佳时机

要点:dp[i][0] 是第 i 天持有股票时的资产,dp[i][1] 是第 i 天卖出股票时的资产,只跟前一天有关

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

122.买卖股票的最佳时机II

要点:没理解啊没理解

class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(), vector<int>(2, 0));dp[0][0] = -prices[0];dp[0][1] = 0;for (int i = 1; i < prices.size(); 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][0] + prices[i]);}return dp[prices.size() - 1][1];}
};

123.买卖股票的最佳时机III

要点:当天的状态会延续前一天的状态

class Solution {
public:int maxProfit(vector<int>& prices) {vector<vector<int>> dp(prices.size(), vector<int>(5, 0));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 < 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];}
};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣1562.查找大小为M的最新分组
  • LLM在线理解;神将网络理解;transform架构
  • log4j反序列化-流程分析
  • 单机部署ELK + Filebeat 收集应用日志
  • C++:map容器的使用
  • RangePicker 表单赋值引发的无限更新问题(Maximum update depth exceeded)
  • 【JS】一篇BOM详解笔记 | b站李立超
  • Linux:shell环境bash配置文件讲解(用户登录弹提示语的实现)
  • 算法刷题day28|动态规划:509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 【C语言】指针、多维数组零碎知识点
  • Linux 操作系统速通
  • 蒲公英G5-2250路由器之收集各种硬件的配置页面
  • 初见scikit-learn之基础教程
  • langchain调用讯飞星火大模型3.5和4
  • C++入门 | auto关键字、范围for、指针空值nullptr
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • android图片蒙层
  • Angular 4.x 动态创建组件
  • E-HPC支持多队列管理和自动伸缩
  • emacs初体验
  • HTTP请求重发
  • JavaScript 基本功--面试宝典
  • Javascript弹出层-初探
  • Java-详解HashMap
  • js中的正则表达式入门
  • laravel 用artisan创建自己的模板
  • MySQL数据库运维之数据恢复
  • MySQL主从复制读写分离及奇怪的问题
  • Redis 中的布隆过滤器
  • spark本地环境的搭建到运行第一个spark程序
  • 多线程事务回滚
  • 基于axios的vue插件,让http请求更简单
  • 微服务核心架构梳理
  • 微信小程序:实现悬浮返回和分享按钮
  • 我是如何设计 Upload 上传组件的
  • 《码出高效》学习笔记与书中错误记录
  • Nginx实现动静分离
  • 翻译 | The Principles of OOD 面向对象设计原则
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 如何在招聘中考核.NET架构师
  • 昨天1024程序员节,我故意写了个死循环~
  • # dbt source dbt source freshness命令详解
  • (1)常见O(n^2)排序算法解析
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (Java入门)抽象类,接口,内部类
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (zhuan) 一些RL的文献(及笔记)
  • (二)windows配置JDK环境
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)ssm教材管理系统 毕业设计 011229
  • (七)Activiti-modeler中文支持
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (入门自用)--C++--抽象类--多态原理--虚表--1020