算法题系列8·买卖股票的最佳时机

news2025/1/20 5:45:16

目录

题目描述

实现

提交结果


题目描述

给定一个数组 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

链接: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

实现

func maxProfit(prices []int) int {
	n := len(prices)
	in, profit := 0, 0 // in买入位置
	for j := 1; j < n; j++ {
		if prices[j] < prices[in] {
			in = j
			continue
		}

		if prices[j]-prices[in] > profit {
			profit = prices[j] - prices[in] // 当前情况下卖出时的利润
		}
	}

	return profit
}

验证

	var nums1 = []int{7, 1, 5, 3, 6, 4}
	n1 := maxProfit(nums1)
	fmt.Println(n1) // 5

	var nums2 = []int{7, 6, 4, 3, 1}
	n2 := maxProfit(nums2)
	fmt.Println(n2) // 0

	var nums3 = []int{5, 6, 5, 3, 9, 8}
	n3 := maxProfit(nums3)
	fmt.Println(n3) // 6

时:O(n)

空 :常数个变量,O(1)

提交结果

解答可能并不唯一,仅供参考哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1051632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DHCP(自动分配ip地址实验案例)

目录 实验原理 案例 实验原理 DHCP 使用客户服务器方式&#xff0c;采用请求/应答方式工作。DHCP 基于 UDP 工作&#xff0c;DHCP服务器运行在67号端口&#xff0c;DHCP客户运行在68号端口。 DHCP的工作过程分为以下步骤&#xff1a; &#xff08;1&#xff09;DHCP服务器被…

一种单键开关机电路图

我们设计产品时&#xff0c;通常需要设计单键开关机功能。 单键开关机&#xff0c;通常需要单片机的两个IO完成&#xff0c;一个IO用于保持开机状态。另外&#xff0c;一个IO用于判定关机状态。 下面就是一种单键开关机电路原理图&#xff1a; 此单键开关电路已经在S2W-M02、S2…

运用文心大模型优化前端工程师简历

文章目录 大模型写简历第一步&#xff0c;整理大纲&#xff1a;第二步&#xff0c;完善专业技能部分&#xff1a;第三步&#xff0c;写项目经验&#xff1a;文心大模型 输出结果第一步第二步第三步 大模型优化简历文心大模型 输出结果openAI-Chat3.5 输出结果 总结 大模型写简历…

陪诊系统|陪诊软件医疗陪护的创新之路

陪诊服务系统源码功能及解决方案&#xff0c;在一对一专属服务&#xff0c;就医经验丰富的专业陪诊师的陪伴下&#xff0c;就医体验得以优化&#xff0c;就医全程无须自行探究和寻找&#xff0c;就医过程更加省心&#xff0c;同时减轻了家属时间精力的负担。陪诊服务系统提供的…

【Java 进阶篇】MySQL 数据库备份与还原

MySQL 是一款常用的关系型数据库管理系统&#xff0c;用于存储和管理数据。在数据库应用中&#xff0c;数据备份和还原是非常重要的操作&#xff0c;用于保护数据免受意外删除、损坏或数据丢失的影响。本文将详细介绍如何在 MySQL 中进行数据库备份和还原操作&#xff0c;包括常…

【赠书活动】AI时代项目经理必备技能

&#x1f449;博__主&#x1f448;&#xff1a;米码收割机 &#x1f449;技__能&#x1f448;&#xff1a;C/Python语言 &#x1f449;公众号&#x1f448;&#xff1a;测试开发自动化【获取源码商业合作】 &#x1f449;荣__誉&#x1f448;&#xff1a;阿里云博客专家博主、5…

【GDB】 command 命令

GDB command 命令 语法 command 命令是一个很好用的调试命令&#xff0c;它配合断点使用&#xff0c;可以在指定的断点执行预先设置的命令 其语法为&#xff1a;command bread_id&#xff0c;这样会提示你输入你要执行的命令&#xff0c;以 end 结束。这个 bread_id 就是用 …

期权定价模型系列【7】:Barone-Adesi-Whaley定价模型

期权定价模型系列第7篇文章 1.前言 目前大连商品交易所、郑州商品交易所、以及上海期货交易所的所有商品期权都为美式期权&#xff0c;并且大商所的所有期权合约会根据BAW(Barone-Adesi-Whaley)美式期权定价模型计算新上市期权合约的挂牌基准价。 BAW模型(Barone-Adesi and W…

Java进阶篇--网络编程

​​​​​​​ 目录 计算机网络体系结构 什么是网络协议&#xff1f; 为什么要对网络协议分层&#xff1f; 网络通信协议 TCP/IP 协议族 应用层 运输层 网络层 数据链路层 物理层 TCP/IP 协议族 TCP的三次握手四次挥手 TCP报文的头部结构 三次握手 四次挥手 …

[old]TeamDev DotNetBrowser Crack

TeamDev DotNetBrowser将 Chromium Web 浏览器添加到您的 .NET 应用程序中。在 WPF 和 WinForms 中显示现代网页。使用 DOM、JS、网络、打印等。在 Windows x86/x64/ARM64、macOS x64/Apple Silicon、Linux x64/ARM64 上运行&#xff0c;支持.NET Framework 4.5 特征 HTML5、C…

计算机图像处理-均值滤波

均值滤波 线性滤波器的原始数据与滤波结果是一种算术运算&#xff0c;即用加减乘除等运算实现&#xff0c;如均值滤波器&#xff08;模板内像素灰度值的平均值&#xff09;、高斯滤波器&#xff08;高斯加权平均值&#xff09;等。由于线性滤波器是算术运算&#xff0c;有固定…

基于风险的漏洞管理实现高效安全

通常&#xff0c;网络中存在很多漏洞&#xff0c;修补和修复它们是一个永无止境的过程。但总会有这样的问题&#xff1a;“我应该首先补救什么&#xff1f;如果在我发现另一个开放漏洞之前就被攻击者利用怎么办&#xff1f;” 如何才能避免自己陷入怨恨和悔恨的想法中&#x…

monkeyrunner录制脚本和回放

Monkeyrunner关于使用录制、生成脚本、编译脚本及执行脚本。 首先在计算机上下载和安装SDK、python 2.将recorder.py文件放置SDK文件夹里tools文件夹下 3.USB连接手机&#xff0c;手机端&#xff0c;开启USB调试&#xff0c;并在计算机DOS中输入adb devices命令&#xff0c;查看…

Plant Simulation双深位库堆垛库

Plant Simulation双深位库堆垛库视频演示 自定义多入口&#xff0c;多出口 Plant Simulation双深位库堆垛库

VBA_MF系列技术资料1-192

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

怎么压缩图片?图片太大这样压缩变小

在日常生活中&#xff0c;我们常常会遇到需要上传图片的情况&#xff0c;但由于图片大小超出限制&#xff0c;我们往往需要对其进行压缩。那么&#xff0c;如何有效地压缩图片大小呢&#xff1f;下面就给大家介绍三种方法&#xff0c;帮助你轻松解决图片压缩问题。#长假读书清单…

HBase高阶(一)基础架构及存储原理

一、HBase介绍 简介 HBase是Hadoop生态系统中的一个分布式、面向列的开源数据库&#xff0c;具有高可伸缩性、高性能和强大的数据处理能力。广泛应用于处理大规模数据集。 HBase是一种稀疏的、分布式、持久的多维排序map 稀疏&#xff1a;对比关系型数据库和非关系型数据库&a…

【ARMv8 SIMD和浮点指令编程】NEON 加载指令——如何将数据从内存搬到寄存器(LDxLDxR)?

将内存中的数据搬到 NEON 寄存器,有很多指令可以完成,熟悉这些指令是必须的。 1 LD1 (multiple structures) 将多个单元素结构加载到一个,两个,三个或四个寄存器上。该指令从内存中加载多个单元结构,并将结果写入一、二、三或四个 SIMD&FP 寄存器。 无偏移 一个寄存…

json能够存储图片吗?

JSON 本身并不适合存储图片&#xff0c;因为它是一种轻量级的数据交换格式&#xff0c;易于阅读和编写&#xff0c;同时也易于机器解析和生成。JSON 数据格式简单&#xff0c;只包含键值对&#xff0c;因此它主要用于存储和传输文本数据。 然而&#xff0c;你可以将图片转换为 …

王庆友-架构的本质:如何打造一个有序的系统?

整理自&#xff1a;王庆友-[架构实战案例解析] 我们知道&#xff0c;现在的软件系统越来越复杂&#xff0c;当然相应地&#xff0c;架构的作用也越来越明显。作为开发人员&#xff0c;我们每天都在和架构打交道&#xff0c;在这个过程中&#xff0c;对于架构也经常会产生各种各…