[LeetCode] Best Time to Buy and Sell Stock 買賣股票的最佳時間

 

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

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.數組

 

這道題至關簡單,感受達不到Medium的難度,只須要遍歷一次數組,用一個變量記錄遍歷過數中的最小值,而後每次計算當前值和這個最小值之間的差值最爲利潤,而後每次選較大的利潤來更新。當遍歷完成後當前利潤即爲所求,代碼以下:post

 

C++ 解法:url

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        int res = 0, buy = INT_MAX;
        for (int price : prices) {
            buy = min(buy, price);
            res = max(res, price - buy);
        }
        return res;
    }
};

 

Java 解法:spa

public class Solution {
    public int maxProfit(int[] prices) {
        int res = 0, buy = Integer.MAX_VALUE;
        for (int price : prices) {
            buy = Math.min(buy, price);
            res = Math.max(res, price - buy);
        }
        return res;
    }
}

 

相似題目:code

Best Time to Buy and Sell Stock with Cooldownhtm

Best Time to Buy and Sell Stock IVblog

Best Time to Buy and Sell Stock IIIelement

Best Time to Buy and Sell Stock IIget

 

LeetCode All in One 題目講解彙總(持續更新中...)

相關文章
相關標籤/搜索