Easy题,就不说暴力解了. 求minDiff我们控制变量,找最小被减数,差就会最大。这样遍历一次,一边更新最小被减数,一边更新最大差值。
public class Solution {
/*
* @param prices: Given an integer array
* @return: Maximum profit
*/
public int maxProfit(int[] prices) {
// write your code here
if (prices == null || prices.length == 0){
return 0;
}
int min = prices[0];
int maxDiff = 0;
for (int i = 1; i < prices.length; i++){
if (prices[i] < min){
min = prices[i];
} else {
maxDiff = Math.max(maxDiff, prices[i] - min);
}
}
return maxDiff;
}
}