121. Best Time to Buy and Sell Stock

来源:互联网 发布:网络延时2000 编辑:程序博客网 时间:2024/06/03 14:49

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.

如题所示,要找出最大的利润,有一个条件限制就是买进时间i必须必卖出的时间j小,因此只要遍历买进时间i之后的利润,找到最大值即可。

int maxProfit(int* prices, int pricesSize) {    if(prices == NULL ) return 0;    int i,j;    int max = 0;    for(i=0; i<pricesSize; i++){        for(j=i+1; j<pricesSize; j++){            int diff = prices[j] - prices[i];            if(diff>max){                max = diff;            }        }    }    return max;}
0 0
原创粉丝点击