题解 | #买卖股票的最好时机#
买卖股票的最好时机
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;
}
};