给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。
注意:你不能在买入股票前卖出股票。
思路:这题里只允许买卖股票一次,因此要此想获得最大的利润,我们一定是在历史最低价格的时候来进行买卖的。如果在第i天卖出股票,那么我们一定在i-1天中的最低价格买入才能够过得最大的利润。
class Solution {
public int maxProfit(int[] prices) {
if(prices == null || prices.length ==0)return 0;
int len = prices.length;
int min = prices[0];int max = 0;
for(int i = 1; i < len; i++){
if(prices[i] < min){
min = prices[i];
}
max = Math.max(max,prices[i] - min);
}
return max;
}
}