昨天有点事,感觉贪心算法的部分就是想到了就能做出来,想不出来就想不出来。。
class Solution:
def maxProfit(self, prices: List[int]) -> int:
cur = 1
pre = 0
money = 0
temp = 0
while (cur < len(prices)):
temp = prices[cur] - prices[pre]
if temp > 0:
money += temp
cur += 1
pre += 1
return money
class Solution:
def canJump(self, nums: List[int]) -> bool:
dic = []
cur = 0
cover = nums[0]
if len(nums) == 1:
return True
while(cur <= cover):
cover = max(cover,cur+nums[cur])
if cover >= len(nums)-1:
return True
cur += 1
print(cover)
return False
class Solution:
def jump(self, nums: List[int]) -> int:
if len(nums) == 1:
return 0
cur_distance = 0 # 当前覆盖最远距离下标
ans = 0 # 记录走的最大步数
next_distance = 0 # 下一步覆盖最远距离下标
for i in range(len(nums)):
next_distance = max(nums[i] + i, next_distance) # 更新下一步覆盖最远距离下标
if i == cur_distance: # 遇到当前覆盖最远距离下标
ans += 1 # 需要走下一步
cur_distance = next_distance # 更新当前覆盖最远距离下标(相当于加油了)
if next_distance >= len(nums) - 1: # 当前覆盖最远距离达到数组末尾,不用再做ans++操作,直接结束
break
return ans