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

买卖股票的最佳时机

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

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

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

例子

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。

注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

解法一: 暴力计算

遍历所有可能性,记录最大值

空间复杂度:O(n)
时间复杂度:O(n^2)

显然这个时间复杂度是不可接受

public int maxProfit(int[] prices) { if (prices == null || prices.length <= 1) return 0; int n = prices.length; int max = 0; for (int i = 0; i < n; i++) { for (int k = i + 1; k < n; k++) { int diff = prices[k] - prices[i]; if (diff > 0 && diff > max) max = diff; } } return max; }

解法二

股票低买高卖,

假设第一天买进,后面天数买进/卖出

  1. 假设买进,价格更低,假设买进min更新当前最少值
  2. 假设卖出
    1. 当前卖出利润更大,更新最大利润(此时最大利润当前价格 - 之前价格最低点)
    2. 当前卖出利润更新,则不更新
public int maxProfit(int[] prices) { if (prices == null || prices.length <= 1) return 0; int min = prices[0], max = 0; for (int i = 1; i < prices.length; i++) { if (prices[i] < min) { min = prices[i]; } else if (prices[i] - min > max) { max = prices[i] - min; } } return max; }
http://www.jsqmd.com/news/1099484/

相关文章:

  • 23 万 Star 的秘密知识库,运维和安全人员的工具箱
  • 3个步骤让Windows 11重获新生:Win11Debloat系统优化完全指南
  • 一文搞懂巴别鸟版本管理:从历史回溯到冲突解决的完整攻略
  • 基于STM32单片机老人防丢智能拐杖 盲人导航定位跌倒检测设计系统3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 别只会堆功能!后端业务代码重构实战,告别祖传烂代码
  • App Store Connect CLI 1.5.4 官方版下载(夸克网盘+百度网盘,SHA256校验)
  • Mi-Create:小米穿戴设备表盘设计的完整技术指南与架构解析
  • 做虚拟资料,哪些内容绝对不能碰?一份版权风险排查清单
  • 大模型核心技术与企业级应用实战指南-附录
  • HTML和CSS基本知识
  • 内蒙古教培机构 AI 招生体系 GEO + 招生官网 + 知识短视频全案测评
  • 企业级数字人直播解决方案:多账号矩阵 + 全域同步推流
  • 如何用LinkSwift彻底告别网盘下载烦恼:九大平台一站式解决方案指南
  • 【云原生与DevOps】05-GitOps工作流:ArgoCD+GitHub Actions完整方案
  • 批量图片翻译视频字幕智能抠图一站式解决跨境电商难题
  • MoE模型参数量与激活机制的技术辨析
  • 免费开源:用pk3DS打造你的专属宝可梦3DS游戏世界
  • 双向链表,反转链表
  • 2026年家电原生智能品牌实用推荐
  • 61.吃透 PLC 状态机编程!带超时停机 + 料仓满报警 + 传感器防抖完整实战
  • PHP本地开发环境一键部署与API集成实践指南
  • MySQL索引深潜:从B+树到查询优化器的艺术
  • Spring Boot 3.0.5 + Vue 3 实战:手把手教你搞定WebSocket消息推送(含完整前后端代码)
  • 浏览器中的专业SVG编辑器:如何用SVG-Edit解决矢量图形编辑难题
  • 基于stm32单片机的智能空气净化器设计家居成品PM2.5甲醛检测定制3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 基于STM32单片机智能窗帘设计 智能晾衣架控制 定时开关光照 雨滴3(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 2026年值得关注的AI外呼厂商盘点:从云厂商到垂直方案,怎么选更合适?
  • 不止传照片——140+应用已适配鸿蒙7碰一碰分享
  • Java中实现html转pdf
  • 鸿蒙NEXT应用开发实战:SM3国密算法在数据安全与完整性校验中的应用