码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【剑指offer】——股票的最大利润


    • 💂 个人主页:努力学习的少年
    • 🤟 版权: 本文由【努力学习的少年】原创、在CSDN首发、需要转载请联系博主
    • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

    一.题目

    1.题目描述

    假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?

    示例 1:

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

    示例 2:

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

     2.基础框架

    1. class Solution {
    2. public:
    3. int maxProfit(vector<int>& prices) {
    4. }
    5. };

    3.原题链接

    剑指 Offer 63. 股票的最大利润

    二.解题报告

    • 股票利润=卖出的价格-买入的价格;
    • 最大的股票的利润为:买入的价格 是 卖出的那一天 之前所有天数中 股票的最低价格。
    • 因此,我们从前往后遍历所有的天数,定义一个min_value表示的是遍历到到所有天数中股票的最低价格。
    • 然后 可能的最大利润=将遍历的那一天的股票价格 - min_value。
    • 最后在统计出所有利润中的最大值,即可获得最大利润。

    如下:

    [7,1,5,3,6,4]

     

    将min_value初始化为INT_MAX,

    遍历到第一天时,股票的价格=7,利润=7-min_value,为负值.min_value=7,

    遍历到第二天时,股票的价格=1,利润=7-min_value,为-1,min_value=1;

    .....

    遍历到第五天时,股票的价格=6,利润=6-min_value,为5,min_value=1;

    遍历到第六天时,股票的价格=4,利润=4-min_value,为3,min_value=1;

    然后统计出所有天数的利润值,如果所有的利润是负数,则将最终的利润是0,则不买股票。

    代码详解

    1. class Solution {
    2. public:
    3. int maxProfit(vector<int>& prices) {
    4. int max_profit=0, min_value=INT_MAX;
    5. for(int i:prices){
    6. //max_profit是遍历到天数中能够获得的最大利润
    7. //边遍历边统计最大的利润
    8. max_profit=max(profit,i-min_value);
    9. min_value=min(min_value,i);
    10. }
    11. return profit;
    12. }
    13. };

     

  • 相关阅读:
    人机交互——自然语言生成
    【运维】一些团队开发相关的软件安装。
    [python刷题模板] 珂朵莉树 ODT (基于支持随机访问的跳表
    Android 图像显示系统 - 基础知识之 BitTube
    亮相数字科技出海峰会,火山引擎边缘云助力数字化出海“加速度”
    强化学习从基础到进阶–案例与实践[8]:近端策略优化(proximal policy optimization,PPO)算法
    SwiftUI 代码调试之都是“变心”惹的祸
    并发执行的效率一定比串行执行快?
    正式发布!万应低代码入选中国信通院《2023高质量数字化转型技术解决方案集》
    kindediter富文本内容导出html文件
  • 原文地址:https://blog.csdn.net/sjp11/article/details/126108093
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号