33.121. 买卖股票的最时机

2023-11-14

思路

第一个确定是buyVal
第二个三种情况

  1. 大于等于buyVal,就把这个设置为saleVal
  2. 小于buyVal buyVal 改变为这个,继续遍历

错误思路

我的想法是:先把买的时机确定了,再确定卖的时机,分类讨论,实际操作过程中,有问题:就是它总是改变的这样设计的话,最好是拥有一个不变的

正确思路

把这个数组分为左右两部分,右边最大值减去左边最小值
1+9
2+8
3+7
……
4+6
9+1

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int inf = 1e9;
        int minprice = inf, maxprofit = 0;
        for (int price: prices) {
            maxprofit = max(maxprofit, price - minprice);
            minprice = min(price, minprice);
        }
        return maxprofit;
    }
};

作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock/solution/121-mai-mai-gu-piao-de-zui-jia-shi-ji-by-leetcode-/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

我的

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int maxProfit = 0;
        int leftMin = prices[0];
        for(int i=1;i<prices.size();i++){
            if(prices[i] < leftMin){
                leftMin = prices[i];
            }
            maxProfit = max(maxProfit,prices[i] - leftMin);
        }
        return maxProfit;
    }    
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

33.121. 买卖股票的最时机 的相关文章

随机推荐

  • Robot Framework 自动化测试详解

    一 Robot Framework 简介 1 界面自动化测试工具 界面自动化测试 即UI自动化测试 比较常见的工具有 QTP AutoIt Selenium等 像QTP经历了很多版本 最新的版本好像叫UFT了 对初学者来说 录制回放是相当容
  • 搭建免费IP代理池

    声明 本文章中所有内容仅供学习交流 不可用于任何商业用途和非法用途 否则后果自负 如有侵权 请联系作者立即删除 由于本人水平有限 如有理解或者描述不准确的地方 还望各位大佬指教 搭建代理池思路 思路来源 崔庆才大佬的爬虫书 代理从何而来 用
  • 网络安全面试必问

    项目经历 因为大家写的都是渗透相关 所以编故事也要编的圆润些 题材可以去freebuf看 https search freebuf com search search E6 8C 96 E6 B4 9E article 这里主要记录如何挖洞
  • 三类保留地址(私有地址)【个人笔记,仅供参考】

    A类 10 X X X是私有地址 私有地址就是在互联网上不使用 而被用在局域网络中的地址 127 X X X是保留地址 用做循环测试用的 B类 172 16 0 0 172 31 255 255是私有地址 169 254 X X是保留地址
  • 在Anaconda下安装并使用Pytorch,pillow,numpy等库及Python版本的匹配

    我在Anaconda下创建的新环境为 python 3 7 0 pytorch 1 8 0 pillow 9 5 0 numpy 1 21 5 能够正常运行 如果我这个版本够用的话可以按照这个版本进行安装 具体步骤如下 1 在Anacond
  • PROFINET从站设备描述文件

    目录 一 GSDML文件名格式 二 设备标识信息 三 设备支持的通讯周期时间 四 设备支持的槽位和数据模块 相信熟悉工业现场的工程师们 对于PROFIBUS和PROFINET这两个工业协议都不陌生 过去在使用PROFIBUS现场总线时 从站
  • matlab 专家pid,专家PID

    3 专家控制器 专家控制器的模型是整个仿真模型中的重点 其实质就是把专家规则用Matlab现有计算元件实现出来 当前一般的做法就是利用 IF THEN 语句来表述一条一条的专家规则 28 把单回路控制中的部分规则做成的专家控制器如下所示 图
  • 什么是Elastic Stack

    什么是Elastic Stack Elastic Stack是由ELK演化而来 ELK是三种软件的简称 分别是Elasticsearch logstash kibana组成 在发展的过程中 又有新成员Beats的加入 形成了Elastic
  • Hadoop运行模式 之 本地运行模式

    Hadoop的运行模式包括 本地模式 伪分布式模式以及完全分布式模式 Hadoop官网地址 https hadoop apache org 本次使用的Hadoop的版本是2 7 2 官网文档 https hadoop apache org
  • ssh-keygen 常用命令与参数

    ssh keygen 常用命令与参数 生成密钥 默认生成 2048 位 RSA 密钥 ssh keygen 生成 4096 位 RSA 密钥 ssh keygen t rsa b 4096 生成 521 位 ECDSA 密钥 ssh key
  • sql注入基础原理(超详细)

    一 Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中 再在后台 Sql 服务器上解析执行进行的攻击 它目前黑客对数据库进行攻击的最常用手段之一 二 Web 程序三层架构 三层架构 3 tier a
  • qt信号槽之创建和连接自定义的槽

    在第一版的Qt设计器中 你可以创建你自定义的槽的信号并使他们连接起来 但是你不能直接实现你的槽 你不得不子集于该窗体 并在这个子集中对你自定义的槽编码 子集的方法依然有用 在某些情况下仍起作用 Make sense 但是现在你可以在Qt设计
  • R语言入门

    安装 R语言开源 安装很简单 此处带过 界面 R语言的使用简介 赋值命令 赋值符号为 lt 或 但是建议使用 lt x lt 10 赋值10给变量x R语言的数据类型 R是一种基于对象 object 的语言 在R中看到的一切事物都是对象 对
  • JAVA遇见HTML—JSP篇(六.JSP指令与动作元素)

    include指令 语法 代码示例 新建date jsp文件
  • TensorFlow2.0.0开发环境安装

    TensorFlow 框架支持多种常见的操作系统 如 Windows 10 Ubuntu 18 04 Mac OS 等等 同时也支持运行在 NVIDIA 显卡上的 GPU 版本和仅适用 CPU完成计算的 CPU 版本 我们以最为常见的 Wi
  • c语言练习49:有多少⼩于当前数字的数字

    有多少 于当前数字的数字 给你 个数组 nums 对于其中每个元素 nums i 请你统计数组中 它 的所有数字的数 换 之 对于每个 nums i 你必须计算出有效的 j 的数量 其中 j 满 j i 且nums j lt nums i
  • 【网络层】网络基础 -- IP协议

    引入 IP 协议头格式 网段划分 特殊的IP地址 IP地址的数量限制 私有IP地址和公网IP地址 分片与组装 如何分片与组装 引入 我们前面学习了传输层的相关知识 难道真的就是直接传送吗 当然不是 那TCP究竟做了什么 IP又扮演什么角色
  • Unity3d 制作一个简单的NPC对话系统

    制作一个简单的NPC对话系统 文章目录 制作一个简单的NPC对话系统 前言 效果展示 进入对话区域 开始对话 Inspector面板可调选项 准备工作 NPC UI 代码 完整代码 详细逻辑 开启对话 显示对话 头顶标识 头顶标识 后话 前
  • 算法 - 堆排序(C#)

    csharp view plain copy print
  • 33.121. 买卖股票的最时机

    思路 第一个确定是buyVal 第二个三种情况 大于等于buyVal 就把这个设置为saleVal 小于buyVal buyVal 改变为这个 继续遍历 错误思路 我的想法是 先把买的时机确定了 再确定卖的时机 分类讨论 实际操作过程中 有