【代码随想录算法训练营第四十八天|188.买卖股票的最佳时机IV、309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费】

server/2024/10/19 13:47:34/

文章目录

  • 188.买卖股票的最佳时机IV
  • [309. 买卖股票的最佳时机含冷冻期](https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown/description/)

188.买卖股票的最佳时机IV

和前几个一样,dp数组变大到[n][2k+1],推导公式也一样。

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

309. 买卖股票的最佳时机含冷冻期

dp中多一个冷静期,别的还是一样的。

class Solution:def maxProfit(self, prices: List[int]) -> int:dp = [[0]*3 for _ in prices]dp[0][0] = -prices[0]for i in range(1, len(prices)):dp[i][0] = max(dp[i-1][0], dp[i-1][2]-prices[i])dp[i][1] = max(dp[i-1][1], dp[i-1][0]+prices[i])dp[i][2] = dp[i-1][1]return dp[-1][1]
```# [714. 买卖股票的最佳时机含手续费](https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-transaction-fee/description/)
买入的时候多扣除一个买卖费用就行了,别的也一样。
```python
class Solution:def maxProfit(self, prices: List[int], fee: int) -> int:dp = [[0] * 2 for _ in prices]dp[0][0] = -prices[0] - feefor i in range(1, len(prices)):dp[i][0] = max(dp[i-1][0], dp[i-1][1]-prices[i]-fee)dp[i][1] = max(dp[i-1][0]+prices[i], dp[i-1][1])return dp[-1][-1]
```

http://www.ppmy.cn/server/52855.html

相关文章

解决google chrome helper 内存占用较高!

导语:mac 后台有很多 google chrome helper 线程并且内存占用较高。一直怀疑是IDEA插件的锅,并不是! 查看是哪个网页,哪个插件占用内存。 chrome 更多工具 -> 任务管理器: 找到罪魁祸首,关闭标签页或者…

聚类距离度量(保姆级讲解,包学会~)

在机器学习的聚类中,我们通常需要使用距离来进行类的划分,或者比较不同类之间的各种距离,这里我们介绍西瓜书上所提出的一些距离计算方式。 首先介绍一下距离的一些性质: 西瓜书上给出了四条性质,第一个是非负性&#…

【Pytorch实用教程】如何在多个GPU上使用分布式数据并行进行训练模型

文章目录 1. 代码(可直接运行,含随机生成的训练数据)2. 代码的详细解释2.1. 导入必要的库和模块2.2. 设置每个进程的初始设置2.3. 随机生成数据集类 `RandomDataset`2.4. 训练函数 `train`1. 代码(可直接运行,含随机生成的训练数据) 以下是一个基于PyTorch的多GPU分布式…

PB12.5用DataWindow保存数据非法操作问题解析

在做一个WebService项目时,遇到个问题:在模拟请求WebService服务时,出现列机现象。经排查日志发现是在DataWindow的update时,死掉了。 排查分析: 1、在PB的数据库面板中,选中数据库表,点Grid显…

Linux上使用 git 命令行

在 Github或者 gitee 注册账号 这个比较简单 , 参考着官网提示即可 . 需要进行邮箱校验.以下以创建Github为例。 创建项目 1. 登陆成功后 , 进入个人主页 , 点击下方的 create a new repository 按钮新建项目 2. 在创建好的项目页面中复制项目的链接 , 以备接下来进行下…

rtthread stm32h743的使用(十)i2c设备使用

我们要在rtthread studio 开发环境中建立stm32h743xih6芯片的工程。我们使用一块stm32h743及fpga的核心板完成相关实验,核心板如图: 1.建立新工程,选择相应的芯片型号及debug引脚及调试器 2.打开cubemux,设置外部时钟及串口外设…

Rcmp: Reconstructing RDMA-Based Memory Disaggregation via CXL——论文阅读

TACO 2024 Paper CXL论文阅读笔记整理 背景 RDMA:RDMA是一系列协议,允许一台机器通过网络直接访问远程机器中的数据。RDMA协议通常固定在RDMA NIC(RNIC)上,具有高带宽(>10 GB/s)和微秒级延…

ubuntu中如何使用supervisor管理进程

文章目录 概述安装Supervisor配置Supervisor创建进程配置文件 启动和管理Supervisor 概述 Supervisor 是一个用 Python 编写的进程管理工具,专为 Linux/Unix 系统设计,用于方便地管理和控制后台进程,通常用于服务器环境中管理长时间运行的进…