用一个数组表示股票每天的价格,数组的第i个数表示股票在第i天的价格。 如果只允许进行一次交易,也就是说只允许买一支股票并卖掉,求最大的收益。
从前向后遍历数组,记录当前出现过的最低价格,作为买入价格,并计算以当天价格出售的收益,作为可能的最大收益,整个遍历过程中,出现过的最大收益就是所求。
代码:时间O(n),空间O(1)。
public class Solution {
public int maxProfit(int[] prices) {
int len = prices.length;
if (len <= 0) return 0;
int curMin = prices[0];
int curMax = 0;
for(int i =1;i<len;i++){
curMin = Math.min(curMin,prices[i]);
curMax = Math.max(curMax,prices[i] - curMin);
}
return curMax;
}
}
转载请注明原文地址: https://ju.6miu.com/read-672395.html