121. Best Time to Buy and Sell Stock

来源:互联网 发布:java同步异步调用 编辑:程序博客网 时间:2024/06/08 15:18

题目描述:

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: 5max. 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: 0In this case, no transaction is done, i.e. max profit = 0.
解题思路:

本题要求的是最大的差价,我们用minPrice来记录最低的价格,用profit来记录最大的差价,即每天价格与最低价之间的差的最大值。

代码:

class Solution {public:    int maxProfit(vector<int>& prices) {        int profit = 0;        int minPrice = INT_MAX;        for (int i = 0; i < prices.size(); i++) {            minPrice = min(minPrice, prices[i]);            profit = max(profit, prices[i] - minPrice);        }        return profit;    }};


0 0
原创粉丝点击