假设有一个数组,它的第i个元素是一支给定的股票在第i天的价格。如果你最多只允许完成一次交易(例如,一次买卖股票),设计一个算法来找出最大利润。
public int maxProfit(int[] prices) {
// write your code here
if (prices.length == 0)
return 0;
int minP = Integer.MAX_VALUE;
int profit = 0;
for (int i = 0; i < prices.length; i++) {
minP = Integer.min(minP, prices[i]);
profit = Integer.max(profit, prices[i] - minP);
}
return profit;
}
和之前的股票题一样,min记录最小的,然后计算每一步得到的profit,然后取最大值