Leetcode[数组] 买卖股票的最佳时机 -- 动态规划

2023-11-16

0 题目描述

leetcode原题链接:买卖股票的最佳时机
在这里插入图片描述

1 动态规划

假设给定的数组为:[7, 1, 5, 3, 6, 4]
如果我们在图表上绘制给定数组中的数字,我们将会得到:
在这里插入图片描述
我们来假设自己来购买股票。随着时间的推移,每天我们都可以选择出售股票与否。那么,假设在第 i 天,如果我们要在今天卖股票,那么我们能赚多少钱呢?
显然,如果我们真的在买卖股票,我们肯定会想:如果我是在历史最低点买的股票就好了!太好了,在题目中,我们只要用一个变量记录一个历史最低价格 minprice,我们就可以假设自己的股票是在那天买的。那么我们在第 i 天卖出股票能得到的利润就是 prices[i] - minprice。
因此,我们只需要遍历价格数组一遍,记录历史最低点,然后在每一天考虑这么一个问题:如果我是在历史最低点买进的,那么我今天卖出能赚多少钱?当考虑完所有天数之时,我们就得到了最好的答案。

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        if not prices: return 0
        minprice, maxprofit = int(1e9), 0
        for price in prices:
                minprice = min(minprice, price)
                maxprofit = max(maxprofit, price -minprice)
        return maxprofit      

复杂度分析
时间复杂度: O ( n ) O(n) O(n),只需要遍历一次。
空间复杂度: O ( 1 ) O(1) O(1),只使用了常数个变量。

参考资料

买卖股票的最佳时机

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Leetcode[数组] 买卖股票的最佳时机 -- 动态规划 的相关文章

随机推荐

  • GNU 链接脚本LDS介绍

    前言 程序的从C语言代码变成可以在目标机器上执行额文件 可以分为如下步骤 编译 预编译 将宏定义等转义编译 将C语言变成目标文件 o档案 编译 汇编 将预编译过后的目标变为目标文件 链接 合并多个目标文件 o a 等为最终的可执行文件 LD
  • 51智能小车小车之跟随(超声波的使用)(三)

    智能车的另外一种模式 跟随模式 会跟着前面的障碍物走 此模式利用两个模块 超声波模块和跟随模块 模块的使用 中间是超声波模块 两边是跟随模块 超声波控制前进后退 利用超声波测距 如果距离小于一个值小车前进 否则后退 跟随模块控制左右转动 如
  • Resulting document after update is larger than 16777216

    依赖包是 问题原因 更新文档后data的数据量太大了 超过了16M 解决办法 1 优化自己的mongo代码逻辑 取消文档中的集合存储已文档的方式存储 2 修改mongo的源码 改变源代码并从源代码构建自己的mongo版本 Note the
  • 移动端使用clipboard插件自动复制内容

    最近做一个微信商城遇到点击复制订单号 银行卡号 手机号等等一系列点击复制操作 用到了clipboard插件 支持android ios部分支持 可以通过执行ClipboardJS isSupported 来判断浏览器是否支持clipboar
  • Python已经pip安装某模块后仍然报错ImportError: No module named ***

    uwsgi no request plugin is loaded you will not be able to manage requests Problem Operational MODE preforking threaded n
  • 深富策略:权重调整拖累指数 下周操作要谨慎

    昨日沪深两市指数整体呈现震荡分化格局 上证指数与深证成指全天低开低走 弱势整理格局明显 而创业板指低开高走 反弹走势明显 但尾盘受权重回落影响 最终微幅收涨 行业概念上看 盐湖提锂 能源金属 光伏设备 游戏 化肥行业 元宇宙概念 电子竞技
  • 综合资源网大全

    特别分類 全部 網賺資源 實用 生活 有聲 電子書 辦公 職場 小學初中 公考考研等 幼兒資源 中醫相關 投資理财 情感約會 高中網課 小吃美食 風水相關 seo教程資源 網頁相關資源 福利共享資源 日賺100 3月賺10W CPA空手套白
  • python global和nonlocal_python global和nonlocal用法解析

    python global和nonlocal用法解析 这篇文章主要介绍了python global和nonlocal用法解析 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友可以参考下 global和n
  • Jupyter Notebook代码折叠插件教程

    默认安装完成的 Jupyter Notebook 是没有安装插件选项的 我们可以通过下面的方法安装插件 pip install jupyter contrib nbextensions pip install jupyter nbexten
  • 微信小程序请求的封装及跨域的解决。

    我这个是把所有请求都抽离到不同页面对应的js文件中 可以方便后期的修改和排查问题 第一步 新建api文件夹并创建config js文件配置公共信息 const baseURL http xxxxxxxxxxx 配置公共地址并暴露 expor
  • [日常]实现windows的本地定时备份文件夹

    虽然网上有一些免费的文件自动备份软件 但是没有自己编写一段批处理来完成备份任务来的放心 而且不用占用系统资源 就给大家讲一下如何利用批处理完成本地文件或者文件夹的备份 该方法可把某文件夹下的文件同步到另外的文件夹 可忽略已经存在的文件 可根
  • Can't use Subversion command line client:svn

    1 在Intellij IDEA里checkout东西时出先这个错误提示 Can t use Subversion command line client svn Subversion command line client version
  • 怎么将服务器文件移动到根目录,如何要移动的Nginx Web根目录移到新位置上的Ubuntu 16.04...

    介绍 在Ubuntu上 在默认情况下 Nginx的Web服务器中存储其文件 var www html 通常位于根文件系统与操作系统的其余部分 有时 尽管将文档根目录移动到其他位置 如单独安装的文件系统 很有帮助 例如 如果您从同一Nginx
  • trading view实现

    TradingView udf模式 近期k线更新 刚趟完坑 简单总结一下 第一步 申请tv 官网地址 https cn tradingview com 注 需以公司名义申请 第二步 相关资料 文档 https b aitrade ga bo
  • 特殊乘法。。

    题目描述 写个算法 对两个小于1000000000的输入 求特殊乘法的结果 特殊乘法举例 123 45 1 4 1 5 2 4 2 5 3 4 3 5 输入 两个小于1000000000的数 输出 输入可能有多组数据 对于每组数据 Inpu
  • vue学习笔记3——外部引入css和路由的一部分

    vue学习笔记3 外部引入css和路由的一部分 从外部引入css文件 在 vue文件中 后面加的scoped是H5新特性 可以锁定style的范围 此处这样写就是说引入的css只在当前的vue的主页生效 不加scoped的话 可能会影响其他
  • Hadoop的伪分布式的安装及部署

    文章目录 需要的软件及源码包 安装JDK Hadoop的部署安装 Hadoop的配置 Hadoop的使用 做Hadoop的伪分布式我们分为一下几个步骤
  • [SQL Server]从数据类型 nvarchar 转换为 numeric 时出错。 (8114)

    SQL Server 从数据类型 nvarchar 转换为 numeric 时出错 8114 解决方法 SELECT FROM TABLENAME L where TRY CONVERT decimal 18 2 COLUNNAME is
  • 2023高教社杯 国赛数学建模C题思路 - 蔬菜类商品的自动定价与补货决策

    1 赛题 在生鲜商超中 一般蔬菜类商品的保鲜期都比较短 且品相随销售时间的增加而变差 大部分品种如当日未售出 隔日就无法再售 因此 商超通常会根据各商品的历史销售和需 求情况每天进行补货 由于商超销售的蔬菜品种众多 产地不尽相同 而蔬菜的进
  • Leetcode[数组] 买卖股票的最佳时机 -- 动态规划

    0 题目描述 leetcode原题链接 买卖股票的最佳时机 1 动态规划 假设给定的数组为 7 1 5 3 6 4 如果我们在图表上绘制给定数组中的数字 我们将会得到 我们来假设自己来购买股票 随着时间的推移 每天我们都可以选择出售股票与否