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
posted @ 2024-04-20 23:20  MiraMira  阅读(15)  评论(0)    收藏  举报