買賣股票的最佳時機

假設有一個數組,它的第i個元素是一支給定的股票在第i天的價格。若是你最多隻容許完成一次交易(例如,一次買賣股票),設計一個算法來找出最大利潤。算法

樣例數組

給出一個數組樣例 [3,2,3,1,2], 返回 1。設計

 

class Solution {
public:
/**
* @param prices: Given an integer array
* @return: Maximum profit
*/
int maxProfit(vector<int> &prices) {
// write your code here
int MaxProfit = 0;
int length = prices.size();
if ( length < 2 )
return 0;
else{
int lowprice = prices[0];
for (int i = 1;i<length; i++){
if(prices[i] < lowprice )
lowprice = prices[i];
else
MaxProfit = (prices[i]-lowprice) > MaxProfit ? prices[i]-lowprice:MaxProfit;
}
return MaxProfit;
}
}
};code

 

買賣股票時,先買後賣,所以,當買入的價格高於賣出的價格,即爲虧損。買入的價格低於賣出的價格,爲盈利。遍歷數組,找到最低的買入價格,並記錄差價,直到找到最大利潤。it

相關文章
相關標籤/搜索