# Leetcode 122. Best Time to Buy and Sell Stock II ###### tags: `Leetcode(C++)` 題目 : https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/submissions/ 。 想法 : 狀態轉移 : 今天買 = 上次賣完(手上無股票) or 不做事。 狀態轉移 : 今天賣 = 上次買完(手上有股票) or 不做事。 注意初始狀態 ! 持續更新,最後輸出最後一天賣完即為答案。 時間複雜度 : O(n)。 程式碼 : ``` class Solution { public: int maxProfit(vector<int>& prices) { int l = prices.size(), prevb = -1 * prices[0], prevs = 0; for(int i=1 ; i<l ; i++){ int curb = max(prevs - prices[i] , prevb); int curs = max(prevb + prices[i] , prevs); prevb = curb; prevs = curs; } return prevs; } }; ```