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

力扣面试150题 | 买卖股票的最佳时期

力扣面试150题 | 买卖股票的最佳时期

  • 题目描述
  • 解题思路
  • 代码实现

题目描述

121.买卖股票的最佳时期

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

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

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

示例 1:

输入:[7,1,5,3,6,4]
输出:5
解释:在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。

示例 2:

输入:prices = [7,6,4,3,1]
输出:0
解释:在这种情况下, 没有交易完成, 所以最大利润为 0。

提示:

  • 1 <= prices.length <= 105
  • 0 <= prices[i] <= 104

解题思路

假如计划在第 i 天卖出股票,那么最大利润的差值一定是在[0, i-1] 之间选最低点买入;所以遍历数组,依次求每个卖出时机的最大差值,再从中取最大值。

代码实现

class Solution {
public:int maxProfit(vector<int>& prices) {int minPrice = 1e9;int maxProfit = 0;for (int price : prices) {maxProfit = max(maxProfit, price - minPrice);minPrice = min(price, minPrice);}return maxProfit;}
};
http://www.lryc.cn/news/259758.html

相关文章:

  • uniapp 之 图片 视频 文件上传
  • MIT线性代数笔记-第28讲-正定矩阵,最小值
  • Python:五种算法RFO、GWO、DBO、HHO、SSA求解23个测试函数
  • 如何参与开源项目
  • twitter开发如何避坑
  • 人工智能算法合集
  • PythonStudio:一款国人写的python及窗口开发编辑IDE,可以替代pyqt designer等设计器了
  • 大模型应用_FastGPT
  • elasticsearch|大数据|elasticsearch的api部分实战操作以及用户和密码的管理
  • Android多进程和跨进程通讯方式
  • 通过Jenkins将应用发布到K8s1.24.3
  • 正则表达式入门与实践
  • C++初阶(十六)优先级队列
  • 深入探索C语言中的二叉树:数据结构之旅
  • 如何发现服务器被入侵了,服务器被入侵了该如何处理?
  • CSDN一键注释功能
  • 基于JAVA的校园电子商城系统论文
  • 直播传媒公司网站搭建作用如何
  • 数据结构与算法-动态规划-机器人达到指定位置方法数
  • K8S学习指南(2)-docker的基本使用
  • java 执行linux 命令
  • ubuntu将本机的wifi网络通过网线分享给另一台机器(用于没有有线网络,重装系统后无wifi驱动或者另一台设备没有wifi网卡)
  • Docker + Jenkins + Gitee 自动化部署项目
  • ChatGPT 应用开发(一)ChatGPT OpenAI API 免代理调用方式(通过 Cloudflare 的 AI Gateway)
  • 【TC3xx】GETH
  • 不需要联网的ocr项目
  • 【Git使用总结】
  • 仿照MyBatis手写一个持久层框架学习
  • 关东升老师极简系列丛书(由清华大学出版社出版)
  • 要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 27 章:如何避开和绕过所有人工智能内容检测器