博客
关于我
买卖股票的最好时机 ii
阅读量:365 次
发布时间:2019-03-04

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

为了找到股票交易中的最大利润,算法需要遍历价格数组,计算每一天的价格变化,并记录连续上涨的利润。每当遇到价格下跌时,计算累积利润并重置当前利润。最后,比较一次当前利润和最大利润,确保所有连续上涨都被考虑进去。

以下是优化后的解决方案:

假设你有一个数组,其中第i个元素表示某只股票在第i天的价格。

设计一个算法来寻找最大的利润。你可以完成任意数量的交易(例如,多次购买和出售股票的一股)。但是,你不能同时进行多个交易(即,你必须在再次购买之前卖出之前买的股票)。

class Solution {   public:    /**     *      * @param prices int整型vector      * @return int整型     */    int maxProfit(vector
& prices) { // 如果没有足够的数据,直接返回0 if (prices.size() <= 1) return 0; int maxProfit = 0; int currentProfit = 0; for (int i = 1; i < prices.size(); ++i) { int diff = prices[i] - prices[i-1]; if (diff > 0) { currentProfit += diff; } else { // 如果当前利润比最大利润高,则更新最大利润并重置当前利润 if (currentProfit > maxProfit) { maxProfit = currentProfit; currentProfit = 0; } } } // 最后一次连续上涨的利润需要单独处理 if (currentProfit > maxProfit) { maxProfit = currentProfit; } return maxProfit; }};

解释

  • 初始化变量:maxProfit 用于记录最大利润,currentProfit 用于记录当前连续上涨的利润。
  • 遍历价格数组:从第二个元素开始,计算每个元素与前一个元素的价格差。
  • 处理价格变化:如果差值为正(价格上涨),累加到currentProfit。如果差值为负(价格下跌),检查currentProfit是否大于maxProfit,如果是,更新maxProfit并重置currentProfit。
  • 处理最后一次上涨:遍历结束后,检查currentProfit是否大于maxProfit,以确保最后一次连续上涨被考虑进去。
  • 返回结果:返回最大利润。
  • 这种方法确保了在所有可能的交易中找到最大的利润,同时遵循交易限制,不允许多次交易同时进行。

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

    你可能感兴趣的文章
    python+flask计算机毕业设计高校疫情防控管理平台(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校网上迎新系统(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校运动会(程序+开题+论文)
    查看>>
    python+flask计算机毕业设计高校选课系统(程序+开题+论文)
    查看>>
    Python+Jenkins+Allure Report接口自动化测试持续集成
    查看>>
    python+locust电商全流程性能测试
    查看>>
    Python函数运行的可执行文件的终端输出如何以一般方式静音?
    查看>>
    Python+Pytest+Allure+Git+Jenkins接口自动化框架
    查看>>
    python+pytest接口自动化 —— 参数关联
    查看>>
    python+pytest接口自动化 —— 参数关联
    查看>>
    Python+pytest接口自动化 —— 接口测试基础
    查看>>
    python+pytest接口自动化 —— 自动化用例编写思路 (使用pytest编写一个测试脚本)
    查看>>
    Python+pytest接口自动化之cookie绕过登录(保持登录状态)
    查看>>
    python+pytest接口自动化:接口测试
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    Python+requests+unittest执行接口自动化测试详情
    查看>>
    python+requests+unittest执行自动化接口测试!
    查看>>
    Python+Requests编码识别Bug
    查看>>
    python函数编写_[零基础学python]传说中的函数编写条规
    查看>>
    Python+selenium —— UI自动化之鼠标操作
    查看>>