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

代码随想录算法训练营第四十八天 | leetcode 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II

代码随想录算法训练营第四十八天 | leetcode 121. 买卖股票的最佳时机,122.买卖股票的最佳时机II

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

121. 买卖股票的最佳时机

题目:
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。

你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。

返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。

题目链接:121. 买卖股票的最佳时机

class Solution:def maxProfit(self, prices: List[int]) -> int:if len(prices) == 0:return 0dp = [[0] * 2 for _ in range(len(prices))]# dp[i][0] 表示第i天持有股票所得现金dp[0][0] = -prices[0]# dp[i][1] 表示第i天不持有股票所得现金dp[0][1] = 0for i in range(1, len(prices)):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

题目:
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。
注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

题目链接:122. 买卖股票的最佳时机 II

class Solution:def maxProfit(self, prices: List[int]) -> int:dp = [[0] * 2 for _ in range(len(prices))]dp[0][0] = -prices[0]dp[0][1] = 0for i in range(1, len(prices)):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[-1][1]
http://www.lryc.cn/news/30333.html

相关文章:

  • RAD 11.3 delphi和C++改进后新增、废弃及优化的功能
  • 【C++】引用
  • LPNet for Image Derain
  • 【NLP相关】基于现有的预训练模型使用领域语料二次预训练
  • 使用git进行项目管理--git使用及其常用命令
  • Mybatis_CRUD使用
  • JVM的过程内分析和过程间分析有什么区别?
  • LearnDash测验报告如何帮助改进您的课程
  • 如何通过Java将Word转换为PDF
  • DOM型XSS
  • 04-项目立项:项目方案、可行性分析、产品规划、立项评审
  • 数据分享|NPP VIIRS夜间灯光数据(2012-2020逐月)
  • 网络概论笔记
  • 软工2023个人作业二——软件案例分析
  • python数据分析表格文档Excel数据分析器统计源码
  • Istio Sidecar启动顺序 - 导致的应用容器网络不通
  • 3696. 构造有向无环图
  • RuoYi-Flowable-Plus(代码生成)
  • 训练CV模型常用的方法与技巧
  • [Java·算法·中等]LeetCode22. 括号生成
  • Git项目合并实践
  • C++实战md5、base64算法实现(附源码)
  • P6专题:P6 EPPM和PPM基本概念
  • 【为什么事务@Transactional会失效】
  • NLP中的对话机器人——模型的评估
  • 数据挖掘知识规整与心得体会
  • 修正一些formdesigner的一些bug与操作
  • 前端网络安全
  • docker内存统计
  • 【IDEA】IDEA使用有道翻译引擎—详细配置步骤