题解 | #买卖股票的最好时机(一)#
买卖股票的最好时机(一)
http://www.nowcoder.com/practice/64b4262d4e6d4f6181cd45446a5821ec
双指针方法
public static void main(String[] args) {
int[] arr = {8, 9, 2, 5, 4, 7, 1};
System.out.println(max(arr));
}
public static int max(int[] prices) {
if (prices.length == 0 || prices == null) {
return 0;
}
//记录最大利润
int maxPro = 0;
int min = prices[0];//记录数组中访问过的最小值
for (int i = 1; i < prices.length; i++) {
min = Math.min(min, prices[i]); //遍历到的元素一直和已知的最小值进行比较,找到后就一直固定
maxPro = Math.max(prices[i] - min, maxPro); //不断寻找利益的最大值
}
return maxPro;
}