博客
关于我
LeetCode 121. 买卖股票的最佳时机
阅读量:799 次
发布时间:2023-04-16

本文共 1105 字,大约阅读时间需要 3 分钟。

要解决这个问题,我们需要找到给定股票价格数组中能够获得的最大利润。规则是只能买入一次并卖出一次,且卖出价格必须高于买入价格。

方法思路

我们可以使用一个高效的算法来解决这个问题。这个算法的时间复杂度是O(n),空间复杂度是O(1),非常适合处理大数据量的情况。具体步骤如下:

  • 初始化变量:记录当前最小价格 min_price 和最大利润 max_profit。初始时,min_price 设为第一个价格,max_profit 设为0。
  • 遍历价格数组:从第二个价格开始遍历。
    • 如果当前价格大于 min_price,计算当前价格与 min_price 的利润,并与 max_profit 比较,更新 max_profit
    • 如果当前价格小于 min_price,更新 min_price
  • 返回结果:遍历结束后,返回 max_profit
  • 这种方法确保我们只遍历数组一次,时间复杂度为O(n),能够高效地解决问题。

    解决代码

    #include 
    using namespace std;int maxProfit(vector
    &prices) { if (prices.size() == 0) return 0; int min_price = prices[0]; int max_profit = 0; for (int i = 1; i < prices.size(); ++i) { if (prices[i] > min_price) { int profit = prices[i] - min_price; if (profit > max_profit) { max_profit = profit; } } else { min_price = prices[i]; } } return max_profit;}

    代码解释

    • 初始化min_price 设为第一个价格,max_profit 设为0。
    • 遍历数组:从第二个元素开始,检查当前价格与 min_price 的关系。
      • 如果当前价格高于 min_price,计算利润,并更新 max_profit
      • 如果当前价格低于 min_price,更新 min_price
    • 返回结果:遍历结束后,返回 max_profit

    这种方法确保了在最优的时间和空间复杂度下解决问题,适用于各种股票价格数组。

    转载地址:http://ydgfk.baihongyu.com/

    你可能感兴趣的文章
    Objective-C实现找到最近的点对之间的距离算法(附完整源码)
    查看>>
    Objective-C实现抓包实例(附完整源码)
    查看>>
    Objective-C实现抽签抓阄(附完整源码)
    查看>>
    Objective-C实现抽象工厂模式(附完整源码)
    查看>>
    Objective-C实现拉格朗日插值法(附完整源码)
    查看>>
    Objective-C实现拉格朗日插值算法(附完整源码)
    查看>>
    Objective-C实现拓扑排序算法(附完整源码)
    查看>>
    Objective-C实现拦截输入法(附完整源码)
    查看>>
    Objective-C实现括号匹配(附完整源码)
    查看>>
    Objective-C实现拷贝二进制文件(附完整源码)
    查看>>
    Objective-C实现指定内存空间获取时间的函数(附完整源码)
    查看>>
    Objective-C实现指定点 x 处计算多项式 f(x) 并返回值算法(附完整源码)
    查看>>
    Objective-C实现按位倒序(附完整源码)
    查看>>
    Objective-C实现按位的isPowerOfTwo算法(附完整源码)
    查看>>
    Objective-C实现按位运算符乘以无符号数multiplyUnsigned算法(附完整源码)
    查看>>
    Objective-C实现排队叫号系统(附完整源码)
    查看>>
    Objective-C实现控制NRP8S功率计读取功率 (附完整源码)
    查看>>
    Objective-C实现控制程控电源2306读取电流 (附完整源码)
    查看>>
    Objective-C实现摄氏温度和华氏温度互转(附完整源码)
    查看>>
    Objective-C实现播放器(附完整源码)
    查看>>