(a): if a == null || a.length() == 0: throw maxlow = 0, maxhigh = 0 low = 0 for i = 0, i < a.length(), i++: if a[i] < a[low]: low = i if (a[i]-a[low]) > (a[maxhigh]-a[maxlow]): maxhigh = i maxlow = low return a[maxhigh] - a[maxlow][Hat tip to eopi]
This works if buy/sale is mandatory (-ve maxprofit).
(a): if a == null || a.length() < 2: throw low = 0 maxlow = 0, maxhigh = 1 for i = 1, i < a.length(), i++: if a[i]-a[low] > a[maxhigh]-a[maxlow]: maxhigh = i maxlow = low if a[i] < a[low]: low = i return a[maxhigh] - a[maxlow][Hat tip to IC]
No comments:
Post a Comment