public class Solution {
public int maxProfit(int[] prices) {
if (prices.length<2) return 0;
int[] min = new int[prices.length];
min[0] = prices[0];
int max = 0;
for (int i=1; i<prices.length; i++) {
if (prices[i]<min[i-1]) min[i] = prices[i];
else min[i] = min[i-1];
}
for (int i=1; i<prices.length; i++) {
if (max<prices[i]-min[i-1]) max = prices[i] - min[i-1];
}
return max;
}
}
用一个和prices[]对应的数组记录每天最小的买进价min[]. 再找出最大的prices[i]-min[i].
回复删除O(n) time.