官網題目敘述:

Say you have an array for which the ith element is the price of a given stock on day i.

If you were only permitted to complete at most one transaction (ie, buy one and sell one share of the stock), design an algorithm to find the maximum profit.

Example 1:

Input: [7, 1, 5, 3, 6, 4]
Output: 5

max. difference = 6-1 = 5 (not 7-1 = 6, as selling price needs to be larger than buying price)

 

Example 2:

Input: [7, 6, 4, 3, 1]
Output: 0

In this case, no transaction is done, i.e. max profit = 0.
 

附上過關:

 

這一題其實就去找低點找到就以低點為底,找最高價值就好了。

 

/**

 * @param {number[]} prices

 * @return {number}

 */

var maxProfit = function(prices) {

    if(prices == null || prices.length <=1 )return 0;

    var low , value = 0;

    low = prices[0];

    for(var i = 1 ; i < prices.length ;  i++){

        if(prices[i]<low){

            low = prices[i];

            continue;

        }

        var cv = prices[i] - low ;

        

        if( cv > value){

            value = cv;

        }

    }

    return value;

};
arrow
arrow
    全站熱搜

    Deyu 發表在 痞客邦 留言(0) 人氣()