LeetCode-122-買賣股票的最佳時(shí)機(jī) II

設(shè)計(jì)一個(gè)算法來計(jì)算你所能獲取的最大利潤。你可以盡可能地完成更多的交易(多次買賣一支股票)。
注意:你不能同時(shí)參與多筆交易(你必須在再次購買前出售掉之前的股票)。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡(luò)所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:貪心算法
因?yàn)椴幌拗瀑I賣的次數(shù),要想得到多次交易的最大收益,實(shí)際上就是要得到正向的差值為正的累加和,因?yàn)閷τ谌我庖欢握蛘钪?,?shí)際上都可以假設(shè)做了一次買賣操作,如果是連續(xù)的正差值,則實(shí)際上可以看成是一次買賣,最小的數(shù)為買入操作,最大的數(shù)為賣出操作,所以根據(jù)貪心算法,具體處理過程如下:
遍歷數(shù)組,然后將每一段的正向差值為正數(shù)的差值都累加到收益里面,最后返回result即為預(yù)期最大的收益。
可以參考 LeetCode-121-買賣股票的最佳時(shí)機(jī),應(yīng)該還有動(dòng)態(tài)規(guī)劃的解法。
【每日寄語】 生活就是一半煙火,一半詩意。手執(zhí)煙火謀生活,心懷詩意以謀愛。
標(biāo)簽: