122.Best Time to Buy and Sell Stock II---dp

題目連接:https://leetcode.com/problems/best-time-to-buy-and-sell-stock-ii/description/ide

題目大意:基本定義與121相似,不一樣點:121買賣股票只能有一次,且在這全部的一次買賣中找出最大利潤值;122買賣股票不限次數,要求在這全部次數中的最大利潤值(這裏題目描述不許確,其實不是求某一次買賣獲得的最大利潤值,而是求全部次買賣所得到的總利潤值)。spa

題解(借鑑):這裏不用利用121的貪心思想,直接計算每一天中,只要比前一天貴,就賣出當前股票獲取利潤。(可是我以爲這裏題目漏洞太大了,也就是說1,2,3這組數據,獲得的最大值是2,由(2-1)+(3-2)獲得)。代碼以下(耗時1ms):code

1     public int maxProfit(int[] prices) {
2         int profit = 0;
3         for(int i = 1;i < prices.length; i++) {
4             if(prices[i] > prices[i - 1]) {
5                 profit += prices[i] - prices[i - 1];
6             }
7         }
8         return profit;
9     }
View Code
相關文章
相關標籤/搜索