题目大意: 有一支股票, 你只有顶多一次买入和卖出的机会。让你求最大的收益。
解题思路: 遍历这个数组,用当前值减去之前保存的最小值,求这个差值的最大值。
#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <climit>
using namespace std;
class Solution {
public:
int maxProfit(vector<int> &prices) {
if(prices.empty() || prices.size() == 1)
return 0;
int profit = 0;
int cur_min = INT_MAX;
for(vector<int>::iterator iter = prices.begin(); iter != prices.end(); iter++) {
cur_min = min(cur_min, *iter);
profit = max(profit, *iter - cur_min);
}
return profit;
}
};