[188]best time to buy and sell stock iv

leetcode

這道題做起來(lái)的時(shí)候比較困難,有些地方不太容易想清楚。

首先應(yīng)用DP的思路
DP[i][j] 表示 在前j天進(jìn)行最多i次交易時(shí)的最大profits
這是容易考慮到,dp[i][j] = max(dp[i][j - 1] + * )

即相當(dāng)于分廠兩種狀況,即第j天參與交易與第j天不參與交易。
若第j天不參與交易,則為dp第一項(xiàng)dp[i][j - 1]
若第j天參與交易,則應(yīng)為第j天賣出了股票。

此時(shí),不能夠簡(jiǎn)單地直接應(yīng)用dp[i - 1][j - 1] + diff,因?yàn)樽罴训馁I(mǎi)入點(diǎn)未必是j - 1.

因此應(yīng)該維護(hù)數(shù)組,buy, 記錄當(dāng)前狀態(tài)是買(mǎi)入時(shí)的最大利潤(rùn)。

因此迭代公式為:
buy[i][j] = max(
dp[i][j] = max(dp[i][j - 1], buy[i][j] + prices[j])

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容