This article is in the study summary, welcome reprint but please specify Source: http://blog.csdn.net/pistolove/article/details/43024967
Say you has an array for which the I-th element is the price of a given-stock on day I.
If you were-permitted-to-complete at most one transaction (ie, buy one and sell one share of the stock), design an AL Gorithm to find the maximum profit.
Ideas:
(1) Test instructions is given an array, the value of element I in the array corresponds to the stock of day I, the maximum profit that can be obtained by only one trade, that is, buy once and sell.
(2) The maximum difference is examined in this question. For the subject, if the value of the first day is greater than the value of the i+1 day, the rendering will not be able to buy, only the value of the day I is less than the value of the I+1 day, the display is monotonically increasing when the purchase to profit. So, we iterate over the array, comparing the difference between the adjacent elements, and the maximum value is the maximum profit.
(3) Hope this article is helpful to you.
The algorithm code is implemented as follows:
/** * @authod liqq */public int maxprofit (int[] prices) {int len = prices.length;if (prices = = NULL | | Len <= 1) return 0;int Curr = prices[0];int Profit = 0;for (int i = 0; i < len; i++) {int nex = Prices[i];p rofit = nex-curr > ProFi T? Nex-curr:profit;curr = Curr < NEX? Curr:nex;} return profit;}
best time to Buy and Sell Stock