这道题的转换为数学问题就是数组的一前一后如何选出差值最大的值,注意是数组角标大的元素减去小的元素得到的差值。
我的思想是:在遍历的过程中,动态的改变数组中最小的值,当然在遍历的时候,最大差值也在不断的更新。
class Solution {
public int maxProfit(int[] prices) {
if(prices.length==0){
return 0;
}
int max=0;
int min=prices[0];
for(int i=1;i<prices.length;i++){
if(min<prices[i]){
if(max<prices[i]-min){
max=prices[i]-min;//更新最大差值,也就是题目要求的最大利润
}
}else{
min=prices[i];//更新数组中最小的元素的值
}
}
return max;
}
}