leetcode 714 買賣股票的最佳時機含手續(xù)費

買賣股票是leetcode 中關(guān)于動態(tài)規(guī)劃的一大套路題
給定一個整數(shù)數(shù)組 prices,其中第 i 個元素代表了第 i 天的股票價格 ;非負整數(shù) fee 代表了交易股票的手續(xù)費用绑雄。

你可以無限次地完成交易俱济,但是你每筆交易都需要付手續(xù)費级历。如果你已經(jīng)購買了一個股票纺荧,在賣出它之前你就不能再繼續(xù)購買股票了。

返回獲得利潤的最大值非剃。

注意:這里的一筆交易指買入持有并賣出股票的整個過程置逻,每筆交易你只需要為支付一次手續(xù)費。

示例 1:

輸入: prices = [1, 3, 2, 8, 4, 9], fee = 2
輸出: 8
解釋: 能夠達到的最大利潤:  
在此處買入 prices[0] = 1
在此處賣出 prices[3] = 8
在此處買入 prices[4] = 4
在此處賣出 prices[5] = 9
總利潤: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.

解法:
動態(tài)規(guī)劃的重點在于狀態(tài)選擇备绽,這里關(guān)于天數(shù)是一個變量券坞,以及對應(yīng)那天是否持有又是另一個狀態(tài),在不進行狀態(tài)壓縮的情況下疯坤,有幾個狀態(tài)报慕,動態(tài)規(guī)劃的dp表就會有一個維度深浮。
所以這個問題中dp[i][j]表示到i天在條件j(持有/已售出)時的最大收益值.

  • 當(dāng)?shù)趇天持有股票時压怠,轉(zhuǎn)態(tài)的轉(zhuǎn)移來自于第i-1天持有股票保持到第i天和第i-1天不持有股票但是在第i天買入,公式化表示為
    dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]-fee)
  • 當(dāng)?shù)趇 天不持有股票時飞苇,轉(zhuǎn)態(tài)是從第i-1天不持有保持到第i天和第i-1天持有在第i天賣出菌瘫,表示為:
    dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i])
注意題目中的買入和賣出只收取一次fee(指定賣出時收fee)
class Solution:
    def maxProfit(self, prices: List[int], fee: int) -> int:
        n=len(prices)
        if n<2:
            return 0
        dp=[[0]*2 for _ in range(n)]
        dp[0][1]=-prices[0]
        dp[1][0]=0
        for i in range(1,n):
            dp[i][0]=max(dp[i-1][0],dp[i-1][1]+prices[i]-fee)
            dp[i][1]=max(dp[i-1][1],dp[i-1][0]-prices[i])
        return dp[n-1][0]
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蜗顽,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子雨让,更是在濱河造成了極大的恐慌雇盖,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件栖忠,死亡現(xiàn)場離奇詭異崔挖,居然都是意外死亡,警方通過查閱死者的電腦和手機庵寞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門狸相,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人捐川,你說我怎么就攤上這事脓鹃。” “怎么了古沥?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵瘸右,是天一觀的道長。 經(jīng)常有香客問我岩齿,道長太颤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任纯衍,我火速辦了婚禮栋齿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘襟诸。我一直安慰自己瓦堵,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布歌亲。 她就那樣靜靜地躺著菇用,像睡著了一般。 火紅的嫁衣襯著肌膚如雪陷揪。 梳的紋絲不亂的頭發(fā)上惋鸥,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天,我揣著相機與錄音悍缠,去河邊找鬼卦绣。 笑死,一個胖子當(dāng)著我的面吹牛飞蚓,可吹牛的內(nèi)容都是我干的滤港。 我是一名探鬼主播,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼趴拧,長吁一口氣:“原來是場噩夢啊……” “哼溅漾!你這毒婦竟也來了山叮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤添履,失蹤者是張志新(化名)和其女友劉穎屁倔,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體暮胧,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡锐借,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了往衷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瞎饲。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖炼绘,靈堂內(nèi)的尸體忽然破棺而出嗅战,到底是詐尸還是另有隱情,我是刑警寧澤俺亮,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布驮捍,位于F島的核電站,受9級特大地震影響脚曾,放射性物質(zhì)發(fā)生泄漏东且。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一本讥、第九天 我趴在偏房一處隱蔽的房頂上張望珊泳。 院中可真熱鬧,春花似錦拷沸、人聲如沸色查。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秧了。三九已至,卻和暖如春序无,著一層夾襖步出監(jiān)牢的瞬間验毡,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工帝嗡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晶通,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓哟玷,卻偏偏與公主長得像狮辽,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,585評論 2 359