题目
分析
要想时间复杂度最低,那么就应该遍历完一次数组后,就可以得到最大利润。要想得到最大利润,要计算当前价格与之前的最低价格进行相减,然后与之前的最大利润进行比较,即可得到结果。
代码
class Solution {
public int maxProfit(int[] prices) {
if(prices==null||prices.length<=1)
return 0;
int Vmin=prices[0], ans=0;
for(int i=1;i<prices.length;i++){
if(prices[i]-Vmin>ans)
ans=prices[i]-Vmin;
if(prices[i]<Vmin)
Vmin=prices[i];
}
return ans;
}
}