class Solution {
public int maxProfit(int[] prices) {
int min = Integer.MAX_VALUE;
int max = 0;
//找出买入价后的最大卖出价
for(int i = 0;i<prices.length;i++){
if(prices[i]<min){
//找到最小买入价
min = prices[i];
}else if(prices[i] - min > max){
//找出最大利润
max = prices[i] - min;
}
}
return max;
}}
此题选择最大的收益,那就是max{前i-1天最大的收益,第i天的价格-前i-1天最小的价格},所以需要记录最小的价格,O(n)
算法题,一次循环,如果比min小的话则记录,就不用计算max