import java.util.*;
public class Solution {
/**
*
* @param prices int整型一维数组
* @return int整型
*/
public int maxProfit(int[] prices) {
// 比较前后两个数字,diff 最大的那对
if (prices == null || prices.length <= 1) {
return 0;
}
int minVal = Integer.MAX_VALUE; //最小的股票价格
int cur = 1; //当前指针
int maxProfit = 0; //最大利润结果
// 只记录最大利润,题目不要求记录是哪两天进行买卖
while (cur < prices.length) {
//今天比昨天跌了,略过,直到今天比昨天涨
if (prices[cur] <= prices[cur - 1]) {
cur++;
continue;
}
//昨天价格即为近期最低点,如果比已存最低点还低,则替换
if (prices[cur - 1] < minVal) {
minVal = prices[cur - 1];
}
//计算股票买卖利润,如果比maxProfit 大,则替换
int diff = prices[cur] - minVal;
maxProfit = Math.max(diff, maxProfit);
cur++;
}
return maxProfit;
}
}