Skip to content

Latest commit

 

History

History
32 lines (21 loc) · 1.07 KB

0122. 买卖股票的最佳时机 II.md

File metadata and controls

32 lines (21 loc) · 1.07 KB
  • 标签:数组、贪心算法
  • 难度:简单

题目大意

给定一个数组,第 i 个元素是一支给定股票第 i 天的价格。可以多次买卖这一支股票,求所能获取的最大利润。

解题思路

解题关键词:贪心

股票买卖获取利润主要是看差价,必然是低点买入,高点卖出才会赚钱。而要想获取最大利润,就要在跌入谷底的时候买入,在涨到波峰的时候卖出利益才会最大化。所以我们购买股票的策略变为了:

  1. 连续跌的时候不买;
  2. 跌到最低点买入;
  3. 涨到最高点卖出。

在这种策略下,只要计算波峰和谷底的差值即可。而波峰和谷底的差值可以通过两两相减所得的差值来累加计算。

代码

class Solution:
    def maxProfit(self, prices: List[int]) -> int:
        ans = 0
        for i in range(1, len(prices)):
            ans += max(0, prices[i]-prices[i-1])
        return ans