122.买卖股票的最佳时机II
题目链接:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-ii/
每次有利润都出
class Solution:
def maxProfit(self, prices: List[int]) -> int:
res = 0
for i in range(1, len(prices)):
res += max(prices[i]-prices[i-1],0)
return res
55.跳跃游戏
题目链接:https://leetcode.cn/problems/jump-game/
需要注意的是可跳跃的范围
class Solution:
def canJump(self, nums: List[int]) -> bool:
if len(nums) == 0: return True
range = 0
index = 0
while index <= range:
range = max(nums[index]+index, range)
if range >= len(nums)-1: return True
index += 1
return False
45.跳跃游戏II
题目链接:https://leetcode.cn/problems/jump-game-ii/
和上面一道题其实我个人觉得有点类似 但因为返回的是步数 需要弄清楚逻辑
class Solution:
def jump(self, nums: List[int]) -> int:
if len(nums) == 1: return 0
step = 0
cur_range, next_range = 0, 0
for i in range(len(nums)-1):
next_range = max(i+nums[i], next_range)
if i == cur_range:
cur_range = next_range
step += 1
return step