1. 程式人生 > >122.Best Time to Buy and Sell Stock II

122.Best Time to Buy and Sell Stock II

pan -i 題解 得到 sel 獲得 open 但是 blog

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

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

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

技術分享
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

122.Best Time to Buy and Sell Stock II