股票的最大利润

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

例如一只股票在某些时间节点的价格为 [9,11,8,5,7,12,16,14][9,11,8,5,7,12,16,14]。

如果我们能在价格为 55 的时候买入并在价格为 16 时卖出,则能收获最大的利润 11 。

样例

1
2
3
输入:[9, 11, 8, 5, 7, 12, 16, 14]

输出:11

解题代码

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class Solution {
public:
    int maxDiff(vector<int>& nums) {
        int pre = 99999,res = -99999;
        for(int i=0,n = nums.size();i<n;++i) {
            pre = min(pre,nums[i]);
            res = max(res, nums[i] - pre);
        }
        return max(0,res);
    }
};