LeetCode122. Best Time to Buy and Sell Stock II

一梧奢、原題

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

Design an algorithm to find the maximum profit. You may complete as many transactions as you like (ie, buy one and sell one share of the stock multiple times). However, you may not engage in multiple transactions at the same time (ie, you must sell the stock before you buy again).


二、題意

給定一個(gè)數(shù)組撞叨,表示某一個(gè)特定的股票每一天的價(jià)格妇拯,則prices[i]則表示第i天該股票的價(jià)格饿肺。假如在已知每一天的該股票價(jià)格的情況下诗箍,允許多次買賣碗降,但每一次賣出之后隔天才能買入匿又,問如何找出最大的利潤方灾?


三、思路

假設(shè)股票的價(jià)格如下:[1碌更,3裕偿,5,0痛单,9嘿棘,8,4桦他,7]蔫巩,則我們可以很快求出其每一天買入,隔天賣出的利潤:[2快压,2圆仔,-5,9蔫劣,-1坪郭,-4,3]脉幢。

  • 第一天:利潤為0歪沃,因?yàn)榈谝惶熘荒苜I入,肯定沒有利潤嫌松;
  • 第二天:利潤為2沪曙,因?yàn)榈诙靸r(jià)格高于第一天價(jià)格,賣出會(huì)獲利萎羔;
  • 第三天:利潤為4液走,因?yàn)榈诙觳毁u的話,留到第三天贾陷,則此時(shí)利潤為4缘眶,比第二天賣出的利潤還要高;
  • 第四天:利潤為4髓废,因?yàn)榍叭於疾毁u巷懈,等到第四天賣出的時(shí)候并沒有利潤,因此需要在第三天賣出慌洪,使得在第四天的時(shí)候利潤最大顶燕。此時(shí)可以考慮第四天買入凑保;
  • 第五天:利潤為13,因?yàn)槿绻紤]前四天的情況割岛,在第一天買入第三天賣出愉适,在第四天再買入第五天賣出犯助,則此時(shí)利潤最大癣漆。
    ......

對(duì)比一下每一天的利潤情況:[2,2剂买,-5惠爽,9,-1瞬哼,-4婚肆,3],其中的第i個(gè)數(shù)字表示第(i-1)天買入坐慰,第i天賣出的情況

  • 第一天:0
  • 第二天:第一天買入较性,第二天賣出的利潤是2,2 > 0结胀,所以到第二天最大利潤為2赞咙;
  • 第三天:第二天買入,第三天賣出的利潤是2糟港,此時(shí)根據(jù)上面的推算攀操,我們知道第三天的利潤為4,那就是4=2+2秸抚,此時(shí)能否考慮兩天的利潤相加速和?假設(shè)這兩天利潤表示為x,y剥汤,則同時(shí)選擇x和y颠放,也就是x+y就表示第一天買入,第二天賣出吭敢,然后第二天買入碰凶,第三天再賣出,但我們知道省有,每一次賣出之后隔天才能買入(題意要求)痒留,此時(shí)是否沖突?將股票在同一天賣出然后再買入蠢沿,不就相當(dāng)于在這一天不買賣一樣嗎伸头,也就是在這一天持有該股票不進(jìn)行買賣,所以最后的情況就是舷蟀,第一天買入恤磷,第二天不買賣面哼,第三天賣出。
  • 第四天:第三天買入扫步,第四天賣出的利潤為-5魔策,-5 < 0,此時(shí)應(yīng)該不考慮河胎,所以到第四天闯袒,最大的利潤跟第三天一樣為4。如果考慮了游岳,那就是2+2+(-5)也就是第一天買入政敢,第二三天不買賣,第四天賣出胚迫,最后利潤為-1喷户,剛好就是0-1=-1
  • 第五天:第四天買入,第五天賣出的利潤為9访锻,從上面推算褪尝,第五天的最大利潤為13,也就是4+9期犬,4為第三天(也是第四天)的最大利潤河哑,如果拆成每一天的利潤和,則2+2+9的意思就是第一天買入哭懈,第三天賣出灾馒,第四天買入,第五天賣出遣总,所以此時(shí)滿足題意的“允許多次買賣睬罗,但每一次賣出之后隔天才能買入”
    ......

梳理一下,對(duì)于每一天的利潤情況[a旭斥,b容达,c,d垂券,e花盐,f]

  1. 如果選擇了連續(xù)的兩個(gè)數(shù)菇爪,假設(shè)為b和c算芯,則表示第二天買入,第四天賣出凳宙,也就是如果選擇了連續(xù)兩天的利潤熙揍,則表示中間一天不買賣;
  2. 如果選擇了不是連續(xù)的兩個(gè)數(shù)氏涩,假設(shè)為a和c届囚,則表示第一天買入有梆,第二天賣出,第三天買入意系,第四天賣出泥耀;

綜上,選擇的數(shù)不管是否為連續(xù)的數(shù)蛔添,均滿足題意“允許多次買賣痰催,但每一次賣出之后隔天才能買入”的要求,此時(shí)只需要將每一天的利潤大于0的相加則為所要求的結(jié)果作郭。


四陨囊、代碼

class Solution {
public:
    int maxProfit(vector<int>& prices) {
        if(prices.empty()){
            return 0;
        }
        int sum = 0;
        for(int i = 1; i < prices.size(); ++i){
            if(prices[i] - prices[i-1] > 0){
                sum += (prices[i] - prices[i-1]);
            }
        }
        return sum;
    }
};
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市夹攒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌胁塞,老刑警劉巖咏尝,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異啸罢,居然都是意外死亡编检,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門扰才,熙熙樓的掌柜王于貴愁眉苦臉地迎上來允懂,“玉大人,你說我怎么就攤上這事衩匣±僮埽” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵琅捏,是天一觀的道長。 經(jīng)常有香客問我,道長几苍,這世上最難降的妖魔是什么挎峦? 我笑而不...
    開封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮搜吧,結(jié)果婚禮上市俊,老公的妹妹穿的比我還像新娘。我一直安慰自己滤奈,他們只是感情好摆昧,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著僵刮,像睡著了一般据忘。 火紅的嫁衣襯著肌膚如雪鹦牛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天勇吊,我揣著相機(jī)與錄音曼追,去河邊找鬼。 笑死汉规,一個(gè)胖子當(dāng)著我的面吹牛礼殊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播针史,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼晶伦,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了啄枕?” 一聲冷哼從身側(cè)響起婚陪,我...
    開封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎频祝,沒想到半個(gè)月后泌参,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡常空,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年沽一,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漓糙。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡铣缠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出昆禽,到底是詐尸還是另有隱情蝗蛙,我是刑警寧澤,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布为狸,位于F島的核電站歼郭,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏辐棒。R本人自食惡果不足惜病曾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望漾根。 院中可真熱鬧泰涂,春花似錦、人聲如沸辐怕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽寄疏。三九已至是牢,卻和暖如春僵井,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背驳棱。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來泰國打工批什, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人社搅。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓驻债,卻偏偏與公主長得像,于是被迫代替她去往敵國和親形葬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子合呐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容