题解 | #买卖股票的最好时机#
买卖股票的最好时机
http://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec
- 从第一个数开始遍历数组
- 存储从第一个数到当前的最大值和最小值
- 如果当前值比前面区间最小值还小,这可能是买入时间
- 如果当前值比前面区间最大值还大,这应该是更新后的卖出时间
- 用区间内最大值减去最小值,更新利润
class Solution { public: /** * * @param prices int整型vector * @return int整型 */ int maxProfit(vector<int>& prices) { // write code here int s[]={prices[0],prices[0]};//存储0-0的最大值和最小值 int res=0; for(int i=0;i<prices.size();i++){ if(prices[i]<s[0]){ //更新0-i区间最小值 s[0]=prices[i]; } else if(prices[i]>s[0]){ //更新0-i区间最大值 s[1]=prices[i]; res=res>s[1]-s[0]?res:s[1]-s[0]; } } return res; } };