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

1.6 面试经典150题 - 买卖股票的最佳时机

买卖股票的最佳时机

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

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

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

class Solution:def maxProfit(self, prices: List[int]) -> int:min_price = 1e9max_profit = 0for price in prices:max_profit = max(price - min_price, max_profit)min_price = min(price, min_price)return max_profit

本题解题思路:

对价格数组进行遍历,每次遍历时,都记下当前已经出现的最小价格,以及把当天价格作为卖点的利润,并将本次的利润与前一天的利润对比,取最大值

这样,在遍历结束时,就能得到最大的利润了

买卖股票的最佳时机II

给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。

在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。

返回 你能获得的 最大 利润 。

class Solution(object):def maxProfit(self, prices):""":type prices: List[int]:rtype: int"""profits = 0for i in range(1, len(prices)):profit = prices[i] - prices[i - 1]if profit > 0: profits += profitreturn profits

本题解题思路:

高买低卖,当无法获利时,不要买入。

所以从第二项开始遍历,每次都计算当天价格与前一天的差值,差值大于0时,当作当天的利润,加在总利润中,小于0时丢弃。

遍历完成后即得到了总的最大利润

http://www.lryc.cn/news/281442.html

相关文章:

  • locust快速入门--使用分布式提高测试压力
  • K8s(三)Pod资源——pod亲和性与反亲和性,pod重启策略
  • 免费的域名要不要?
  • 高通sm7250与765G芯片是什么关系?(一百八十一)
  • [Python进阶] Python操作MySQL数据库:pymysql
  • Vue3实现带点击外部关闭对应弹出框(可共用一个变量)
  • 可视化试题(一)
  • RHCE 【在openEuler系统中搭建基本论坛(网站)】
  • 20240112让移远mini-PCIE接口的4G模块EC20在Firefly的AIO-3399J开发板的Android11下跑通【DTS部分】
  • 日志采集传输框架之 Flume,将监听端口数据发送至Kafka
  • 关于Vue前端接口对接的思考
  • 【设计模式之美】SOLID 原则之三:里式替换(LSP)跟多态有何区别?如何理解LSP中子类遵守父类的约定
  • 代码随想录第六十三天——被围绕的区域,太平洋大西洋水流问题,最大人工岛
  • Docker 项目如何使用 Dockerfile 构建镜像?
  • 实践学习PaddleScience飞桨科学工具包
  • Vue 中修改 Element 组件的 下拉菜单(Dropdown) 的样式
  • 达梦数据库主备集群
  • Spark Doris Connector 可以支持通过 Spark 读取 Doris 数据类型不兼容报错解决
  • 深入理解 go chan
  • java+vue基于Spring Boot的渔船出海及海货统计系统
  • Linux第25步_在虚拟机中备份“ST官方的TF-A源码”
  • 统计学-R语言-4.1
  • C++(1) —— 基础语法入门
  • 构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的支持63个常见模块的PHP8.1.20的RPM包
  • Vue-插槽(Slots)
  • 新火种AI|GPT-5前瞻!GPT-5将具备哪些新能力?
  • 安防视频监控系统EasyCVR设备分组中在线/离线数量统计的开发与实现
  • spring cloud之集成sentinel
  • 让车辆做到“耳听八方”,毫米波雷达芯片与系统设计
  • Python如何实现数据驱动的接口自动化测试