121.?買賣股票的最佳時機?
給定一個數(shù)組 prices ,它的第?i 個元素?prices[i] 表示一支給定股票第 i 天的價格固蚤。你只能選擇 某一天 買入這只股票,并選擇在 未來的某一個不同的日子 賣出該股票。設(shè)計一個算法來計算你所能獲取的最大利潤姻氨。返回你可以從這筆交易中獲取的最大利潤。如果你不能獲取任何利潤为牍,返回 0?
思路:
dp數(shù)組:dp[i][0] dp[i][1] 表示第i天持有&不持有股票的最大收益. dp[0] =?[-prices[0], 0]
遞推公式:dp[i][0] = max(dp[i-1][0], -prices[i]), dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0])
遍歷順序:物品在外哼绑,背包在內(nèi)。二維數(shù)組碉咆,正序遍歷抖韩。一維數(shù)組,逆序遍歷疫铜。
二維數(shù)組:
一維數(shù)組:
122.買賣股票的最佳時機II?
給定一個數(shù)組茂浮,它的第?i 個元素是一支給定股票第 i 天的價格。設(shè)計一個算法來計算你所能獲取的最大利潤壳咕。你可以盡可能地完成更多的交易(多次買賣一支股票)席揽。注意:你不能同時參與多筆交易(你必須在再次購買前出售掉之前的股票)。
思路:
dp數(shù)組:dp[i][0] dp[i][1] 表示第i天持有&不持有股票的最大收益. dp[0] =?[-prices[0], 0]
遞推公式:dp[i][0] = max(dp[i-1][0], dp[i-1][1]-prices[i]),?dp[i][1] = max(dp[i - 1][1], prices[i] + dp[i - 1][0])
遍歷順序:物品在外谓厘,背包在內(nèi)幌羞。二維數(shù)組,正序遍歷竟稳。一維數(shù)組属桦,無法實現(xiàn),因為遞推公式中他爸,dp[0] dp[1] 都用到了上一層的dp[0] dp[1]聂宾。
二維數(shù)組:
以下是卡哥資料
股票問題是一個動態(tài)規(guī)劃的系列問題,今日安排的題目不多诊笤,大家可以慢慢消化系谐。
?121.?買賣股票的最佳時機?
視頻講解:https://www.bilibili.com/video/BV1Xe4y1u77q
?122.買賣股票的最佳時機II??