122.買(mǎi)賣(mài)股票的最佳時(shí)機(jī)II?
給定一個(gè)數(shù)組蠢挡,它的第 ?i 個(gè)元素是一支給定股票第 i 天的價(jià)格凡辱。設(shè)計(jì)一個(gè)算法來(lái)計(jì)算你所能獲取的最大利潤(rùn)拧簸。你可以盡可能地完成更多的交易(多次買(mǎi)賣(mài)一支股票)寺旺。注意:你不能同時(shí)參與多筆交易(你必須在再次購(gòu)買(mǎi)前出售掉之前的股票)组去。
55.?跳躍游戲?
給定一個(gè)非負(fù)整數(shù)數(shù)組鞍陨,你最初位于數(shù)組的第一個(gè)位置。數(shù)組中的每個(gè)元素代表你在該位置可以跳躍的最大長(zhǎng)度从隆。判斷你是否能夠到達(dá)最后一個(gè)位置诚撵。
思路:定義一個(gè)最大的覆蓋范圍 max_reach,初始化為0键闺。對(duì) i in range(len(nums))循環(huán)寿烟,如果 i <=?max_reach,則意味著可以到達(dá)當(dāng)前位置辛燥,再根據(jù)nums[i]更新max_reach.
45.跳躍游戲II?
給定一個(gè)非負(fù)整數(shù)數(shù)組筛武,你最初位于數(shù)組的第一個(gè)位置。數(shù)組中的每個(gè)元素代表你在該位置可以跳躍的最大長(zhǎng)度挎塌。你的目標(biāo)是使用最少的跳躍次數(shù)到達(dá)數(shù)組的最后一個(gè)位置徘六。
思路:還是一樣定義max_reach,同時(shí)再定義一個(gè)jump_limit榴都,兩者都初始化為0待锈。jump_limit = 0 就是第0步能達(dá)到的范圍是0。遍歷i in range(n)缭贡,只要 i > jump_limit炉擅,就需要再跳一步,新一步的范圍更新為max_reach阳惹。
以下是卡哥資料
?122.買(mǎi)賣(mài)股票的最佳時(shí)機(jī)II??
本題解法很巧妙谍失,大家可以看題思考一下,在看題解莹汤。?
?55.?跳躍游戲?
本題如果沒(méi)接觸過(guò)快鱼,很難想到,所以不要自己憋時(shí)間太久,讀題思考一會(huì)抹竹,沒(méi)思路立刻看題解?
https://programmercarl.com/0055.%E8%B7%B3%E8%B7%83%E6%B8%B8%E6%88%8F.html?
?45.跳躍游戲II?
本題同樣不容易想出來(lái)线罕。貪心就是這樣,有的時(shí)候?會(huì)感覺(jué)簡(jiǎn)單到離譜窃判,有時(shí)候钞楼,難的不行,主要是不容易想到袄琳。
https://programmercarl.com/0045.%E8%B7%B3%E8%B7%83%E6%B8%B8%E6%88%8FII.html? ?