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

代码随想录算法训练营第四十五天| 动态规划08

121. 买卖股票的最佳时机

视频讲解:动态规划之 LeetCode:121.买卖股票的最佳时机1_哔哩哔哩_bilibili

代码随想录

dp[i][0]表示的是截至第i天股票的最小值,取负数

dp[i][1]表示的是截至第i天股票的最大利润

class Solution:def maxProfit(self, prices: List[int]) -> int:length=len(prices)if length==0:return 0dp=[[0]*2 for _ in range(length)]dp[0][0]=-prices[0]dp[0][1]=0for i in range(1,length):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[-1][1]

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

视频讲解:动态规划,股票问题第二弹 | LeetCode:122.买卖股票的最佳时机II_哔哩哔哩_bilibili

代码随想录

不需要二维数组,一维就可以解决

class Solution:def maxProfit(self, prices: List[int]) -> int:dp=[0]*len(prices)for i in range(1,len(prices)):dp[i]=max(dp[i-1],dp[i-1]+prices[i]-prices[i-1])return dp[-1]

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

这道题一下子就难度上来了,关键在于至多买卖两次,这意味着可以买卖一次,可以买卖两次,也可以不买卖。

视频讲解:动态规划,股票至多买卖两次,怎么求? | LeetCode:123.买卖股票最佳时机III_哔哩哔哩_bilibili

代码随想录

dp[i][j]中 i表示第i天,j为 [0 - 4] 五个状态,dp[i][j]表示第i天状态j所剩最大现金

一天一共就有五个状态,

  1. 没有操作
  2. 第一次持有股票
  3. 第一次不持有股票
  4. 第二次持有股票
  5. 第二次不持有股票
class Solution:def maxProfit(self, prices: List[int]) -> int:if len(prices)==0:return 0dp=[[0]*5 for _ in range(len(prices))]dp[0][1]=-prices[0]dp[0][3]=-prices[0]for i in range(1,len(prices)):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[-1][4]

http://www.mrgr.cn/news/91847.html

相关文章:

  • JavaScript变量的作用域介绍
  • nodejs运行的坎坷之路
  • 《论系统需求分析方法》写作心得 - 系统分析师
  • 业务流程中的流程管理
  • STL —— 洛谷字符串(string库)入门题(蓝桥杯题目训练)(二)
  • 企业组网IP规划与先关协议分析
  • 第一个CMAKE项目hello cmake
  • k8s故障处理经典案例(Classic Case of k8s Fault Handling)
  • 最新本地部署 DeepSeekR1 蒸馏\满血量化版 + WebOpenUI 完整教程(Ubuntu\Linux系统\Ollama)
  • 用户中心项目教程(九)---前端页面设计测试登录功能
  • YOLOv8与BiFormer注意力机制的融合:提升多场景目标检测性能的研究
  • JavaScript数据类型全解析,怎么区分呢?
  • 【spring】静态代理与动态代理 | AOP面向切面编程
  • stm32单片机个人学习笔记15(I2C通信协议)
  • NLP-RNN-LSTM浅析
  • 自然语言处理NLP 02统计语言模型
  • 【Quest开发】全身跟踪(一)
  • 嵌入式学习(18)---Linux文件编程中的进程
  • LeetCode 热题 100_搜索插入位置(63_35_简单_C++)(二分查找)(”>>“ 与 “/” 对比)
  • 雷龙CS SD NAND(贴片式TF卡)测评体验