122. 买卖股票的最佳时机 II
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有 一股股票。你也可以先购买,然后在同一天出售。
返回你能获得的最大利润 。
贪心法:
此题只要有后一天比前一天的值大,则将差值累加即为最终的收益。
class Solution:
def maxProfit(self, prices: List[int]) -> int:
ans=0
for i in range(1,len(prices)):
if prices[i]>prices[i-1]:
ans+=prices[i]-prices[i-1]
return ans
121. 买卖股票的最佳时机
给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。
你只能选择某一天买入这只股票,并选择在未来的某一个不同的日子卖出该股票。设计一个算法来计算你所能获取的最大利润。
返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回0 。
动态规划法:
class Solution:
def maxProfit(self, prices: List[int]) -> int:
if len(prices)<=1:
return 0
min_input=prices[0]
max_profit=0
for p in prices[1:]:
min_input=min(p,min_input)
max_profit=max(max_profit,p-min_input)
return max_profit