leetcode 30:best-time-to-buy-and-sell-stock

题目描述

假设你有一个数组,其中第 i 个元素是股票在第 i 天的价格。
你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。
示例1

输入

[1,4,2]

输出

3
示例2

输入

[2,4,1]

输出

2
题目分析:
分析题目可知,首先,必须先买入,其次卖出的值必须大于买入,并且相差越大越好,这个相差的值就是最大收益。
代码如下:
 1 int maxProfit(vector<int>& prices) {
 2         int min = prices[0];
 3         int maxProfile = 0;
 4         for(int j = 1;j < prices.size();++j)
 5         {
 6             if(prices[j] < min)
 7                 min = prices[j];
 8             else
 9                 maxProfile = max(maxProfile , prices[j] - min);
10         }
11         return maxProfile;
12     }
原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13453463.html