开发者社区> nomasp> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

LeetCode 121 Best Time to Buy and Sell Stock(股票买入卖出的最佳时间)

简介: 版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50814399 翻译 话说你有一个数组,其中第i个元素表示在第i天的股票价格。
+关注继续查看
版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50814399

翻译

话说你有一个数组,其中第i个元素表示在第i天的股票价格。

如果你被只被允许最多一次交易(例如,买入然后卖出一个股票),设计一个算法并找出最大利润。

原文

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), 
design an algorithm to find the maximum profit.

分析

首先设定最大利润和最小利润:

如果当前这一天的股票价格比最低价格还小,那就把最低价格设置为这一天的股票价格。

为什么要算这个价格了,当然是为了算最大利润铺路了。

如果最大利润比当天价格减掉最低价格还要低,那就把最大利润设置成当天价格减去最低的价格。

代码

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        size_t size = prices.size();
        if (size <= 1) return 0;
        int min = INT_MAX, max = INT_MIN;
        for (int i = 0; i < size; ++i) {
            if (prices[i] < min)
                min = prices[i];
            if (max < prices[i] - min)
                max = prices[i] - min;
        }
        return max;
    }
};

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Sublime Text插件的离线安装-使用htmlprettify美化您的HTML代码
Sublime Text插件的离线安装-使用htmlprettify美化您的HTML代码
67 0
HEVC代码追踪(十一。九):运动估计/补偿之xTZ2PointSearch


__inline Void TEncSearch::xTZ2PointSearch( TComPattern* pcPatternKey, IntTZSe
974 0
+关注
542
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载