只允许一次操作,即买进一次,卖出一次,求利润最大化?
解题思路:因为只允许操作一次,换算成数组操作就是只允许一次遍历,故每一次取值都要进行比较,即总是把当前值与最小值进行做差,最后与利润进行比较
对于求数组内最大利润的问题,我们总是记录当前的值,并把当前的值和后面的值依次比较。
public int maxProfit(int[] prices) {
if(prices == null || prices.length == 0)
return 0;
int max_res=0;
int min=prices[0];
for(int i = 1; i < prices.length; i++){
if(min > prices[i]){
min = prices[i];
}
else
{
max_res = Math.max(prices[i]-min,max_res);
}
}
return max_res;
}