由于只考虑一次交易,实际上就是让我们找到数组中后项和前项间的最大差值。 刚开始用了辅助空间记录每天之前的最低价,扫描两边得到结果。 后来发现可以不用辅助空间,直接一边得到该天之前的最低价,一边统计该天的最大收益即可。
public class Solution {
public int maxProfit(int[] prices) {
int l = prices.length;
int res=0;
if( l==0 )
{
return res;
}
int MIN = prices[0];
for( int i=0;i<l;i++ )
{
MIN = Math.min( prices[i],MIN );
res = Math.max(res,prices[i]-MIN);
}
return res;
}
}