32天【代码随想录算法训练营34期】第八章 贪心算法 part02 (● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II )
122.买卖股票的最佳时机II
class Solution:
def maxProfit(self, prices: List[int]) -> int:
result = 0
for i in range(len(prices)-1):
if prices[i+1] - prices[i] > 0:
result += prices[i+1] - prices[i]
return result
55. 跳跃游戏
class Solution:
def canJump(self, nums: List[int]) -> bool:
if len(nums) == 1:
return True
cover = 0
i = 0
while i <= cover:
cover = max(nums[i]+i, cover)
if cover >= len(nums)-1:
return True
i += 1
return False
45.跳跃游戏II
class Solution:
def jump(self, nums: List[int]) -> int:
if len(nums) == 1:
return 0
curstep = 0
nextstep = 0
ans = 0
for i in range(len(nums)):
nextstep = max(nums[i]+i, nextstep)
if i == curstep:
curstep = nextstep
ans += 1
if curstep >= len(nums)-1:
break
return ans