122.买卖股票的最佳时机II
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
max_profit = 0
profit = 0
buyin_idx = 0
for i in range(len(prices)):
print(buyin_idx)
if prices[i]< prices[buyin_idx]:
buyin_idx=i
if prices[i]-prices[buyin_idx]>profit and i<len(prices)-1:
profit=prices[i]-prices[buyin_idx]
elif prices[i]-prices[buyin_idx]>profit and i==len(prices)-1:
profit=prices[i]-prices[buyin_idx]
max_profit+=profit
else:
max_profit+=profit
profit=0
buyin_idx=i
return max_profit
class Solution(object):
def maxProfit(self, prices):
"""
:type prices: List[int]
:rtype: int
"""
max_profit = 0
for i in range(1, len(prices)):
if prices[i]-prices[i-1]>0:
max_profit+=prices[i]-prices[i-1]
return max_profit
55.跳跃游戏
- 题目链接:55.跳跃游戏
- 注意这里是while i<=cover
class Solution(object):
def canJump(self, nums):
"""
:type nums: List[int]
:rtype: bool
"""
if len(nums)==1:
return True
cover = 0
i=0
while i<=cover:
cover = max(i+nums[i], cover)
if cover>=len(nums)-1:
return True
i+=1
return False
45.跳跃游戏II
- 题目链接:45.跳跃游戏II
- step+1的条件(走不下去了再+1)
class Solution(object):
def jump(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if len(nums)==1:
return 0
nextdistance=0
curdistance=0
i=0
step=0
for i in range(len(nums)):
nextdistance=max(i+nums[i], nextdistance)
if curdistance>=len(nums)-1:
return step
if i==curdistance:
curdistance=nextdistance
step+=1
return step