首页 > 编程语言 >LeetCode Top100: 买卖股票的最佳时机 (python)

LeetCode Top100: 买卖股票的最佳时机 (python)

时间:2023-04-20 16:34:25浏览次数:53  
标签:min python max price profit prices Top100 LeetCode 利润

LeetCode Top100: 买卖股票的最佳时机

 

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

 

实现:

以下是一个Python程序,使用一次遍历来计算最大利润。在遍历过程中,记录当前最低价格和最大利润,并更新它们以获取最大利润。

使用一个变量 min_price 来记录到目前为止的最低价格,以及一个变量 max_profit 来记录到目前为止的最大利润。在遍历股票价格数组时,如果当前价格小于最低价格,则更新最低价格;否则,计算当前价格与最低价格的差价,并将其与最大利润进行比较,更新最大利润。最终返回最大利润。

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        min_price = float('inf')
        max_profit = 0
        
        for price in prices:
            if price < min_price:
                min_price = price
            else:
                max_profit = max(max_profit, price - min_price)
                
        return max_profit

  

 

 

标签:min,python,max,price,profit,prices,Top100,LeetCode,利润
From: https://www.cnblogs.com/huadongw/p/17337300.html

相关文章

  • Python基础语法
    Python标识符在Python中,标识符由字母、数字、下划线组成。标识符要求如下:可以包括英文,数字以及下划线;不能以数字开头;区分大小写;以单下划线开头(eg:_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用fromxxximport*而导入;以双下划线开头的(eg:__foo)......
  • python中scrapy框架安装和创建
    第一步是先安装wheelpipinstallwheel第二步是安装lxmlpipinstalllxml第三步是安装Twisted,先在https://www.lfd.uci.edu/~gohlke/pythonlibs/中找到Twisted,然后找到与自己安装的python的版本对应的版本下载下来,然后执行安装,因为我安装的的3.10.11版本,所以我下载的是310......
  • 各平台安装python
    windowwin10+Python3.9.6https://www.python.org/ftp/python/https://www.python.org/ftp/python/3.9.6/这里以Python目前的最新版3.9.6版本为例,本教程也适用于Python3.x版本的安装。但推荐大家安装使用Python3.6及以上版本。访问这个地址:https://www.python.org/ftp/py......
  • 通过python获取SSL证书到期时间
    在前面的文章中曾介绍过如何通过openssl命令获取SSL证书的到期时间:通过zabbix监控ssl证书到期时间。有人反馈实践中这种方式存在缺陷,可能会出现部分域名证书无法获取的情况,报错如下:140323981043600:error:0906D06C:PEM routines:PEM_read_bio:nostartline:pem_lib.c:707:Expe......
  • python操作pptx设置title字体大小插入全屏图片A4尺寸实例一枚
    pipinstallpython-pptx安装好pptx,设置标题最大的作用是ppt里面的摘要视图显示摘要文字参考:https://python-pptx.readthedocs.io/en/latest/ frompptximportPresentationfrompptx.utilimportCmpwidth,pheight=Cm(29.7),Cm(21)#A4大小297*210left=top=0prs=......
  • 【Python无伤速通】第二话:容器
    目录容器序列序列_索引序列_加和乘序列_切片成员测试列表列表_容器的概念列表_创建转化列表_操作列表_追加列表_插入列表_修改列表_删除元组元组_介绍元组_示例元组_创建元组_拆包元组_用途bytes字符串字符串的表示方式普通字符串原始......
  • Python pth 文件写入 getshell 或权限维持
    今天看到Y4er师傅写的文章,我这里简单学习了一下:https://y4er.com/posts/python-pth-file-write-getshell/概述python的site模块支持"Site-specificconfigurationhook"的功能,这个功能点本身是用来将特定路径加入模块搜索路径。该模块在初始化期间自动导入。sys.prefix......
  • PYTHON - datetime 模块
    datetime模块1.1主要类date日期对象time时间对象datetime日期时间对象timedelta两个时间之间的时间间隔1.2date类date对象由year年份、month月份及day日期三个部分来构成的1.2.1获取当前日期fromdatetimeimportdatetime,datetoday=datetime.today().dat......
  • LeetCode Top100:回文链表 (python)
    LeetCodeTop100:回文链表给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。示例1:输入:head=[1,2,2,1]输出:true示例2:输入:head=[1,2]输出:false提示:链表中节点数目在范围[1,105] 内0<=Node.val<=9 ......
  • Python常用数据结构之元组
    前面的两节课,我们为大家讲解了Python中的列表,它是一种容器型的数据类型,通过列表类型的变量,我们可以保存多个数据并通过循环实现对数据的批量操作。当然,Python中还有其他容器型的数据类型,接下来我们就为大家讲解另一种容器型的数据类型,Python常用数据结构之元组(tuple)。元组的定义......